{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "2.2_LSTM_GA.ipynb",
      "provenance": [],
      "collapsed_sections": [
        "YTty1BPGeuSL",
        "hP7fpPv5gGiW",
        "lEUSFuXnPnVj",
        "TWr1tngbQS9t",
        "t4FFZGHRQnde",
        "XaLg54F00aHr",
        "Y6VYHgkItcXb",
        "Xp-YfPAuAwDg",
        "JxsokaxwBQRC",
        "P3lPkjUoSFv-"
      ],
      "toc_visible": true,
      "mount_file_id": "1K721-cGzI_bwOIxN3ZjRG0z87BH5lub6",
      "authorship_tag": "ABX9TyMWAIOTgde4dcuF8yUe//TV"
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "metadata": {
        "id": "KBp1TcRyY-US"
      },
      "source": [
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib as mpl\n",
        "\n",
        "import seaborn as sns\n",
        "import numpy as np\n",
        "\n",
        "#from sklearn.preprocessing import StandardScaler\n",
        "from sklearn.preprocessing import MinMaxScaler\n",
        "\n",
        "import random\n",
        "\n",
        "from tqdm import tqdm  #show a progress meter in the loop"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "BK5dgeE9ZOR5",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "4336a074-705d-443c-d7c8-876300ccc36a"
      },
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "jgyzQRGgNV1z"
      },
      "source": [
        "# Import data"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zklVI4yPOR_s"
      },
      "source": [
        "Journey 101 ***U Wandsbek Markt to S Rübenkamp***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "TLSgGl3dZPUO"
      },
      "source": [
        "path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_01_12_19_data_processed.csv\"\n",
        "#path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_0420_data_processed.csv\"\n",
        "#path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_01_12_19_data_processed.csv\"\n",
        "df_proceeded = pd.read_csv(path)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eAIXPv37ZgEn"
      },
      "source": [
        "df_proceeded"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cc-0yo2bil_d"
      },
      "source": [
        "#df_proceeded = df_proceeded.sort_values(by=['Time'])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "_CIQmqfYOZaw"
      },
      "source": [
        "Journey 102 ***S Rübenkamp to U Wandsbek Markt***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "S5OJ7Lm1Ocav"
      },
      "source": [
        "#path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_0420_data_processed102.csv\"\n",
        "path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_01_12_19_data_processed102.csv\"\n",
        "df_proceeded102 = pd.read_csv(path)\n",
        "#df_proceeded102 = df_proceeded102.sort_values(by=['Time'])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1z64dy9EOeru"
      },
      "source": [
        "Journey 201 ***U Wandsbek Markt to Lufthansa-Basis (Haupteingang)***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_3Bi66sdOhIL"
      },
      "source": [
        "#path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_0420_data_processed201.csv\"\n",
        "path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_01_12_19_data_processed201.csv\"\n",
        "df_proceeded201 = pd.read_csv(path)\n",
        "#df_proceeded201 = df_proceeded201.sort_values(by=['Time'])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VxEiR1W8OkJB"
      },
      "source": [
        "Journey 202 ***Lufthansa-Basis (Haupteingang) to U Wandsbek Markt***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "sZdc12QvOn5h"
      },
      "source": [
        "#path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_0420_data_processed202.csv\"\n",
        "path = \"/content/drive/My Drive/Colab Notebooks/Thesis/ist_01_12_19_data_processed202.csv\"\n",
        "df_proceeded202 = pd.read_csv(path)\n",
        "#df_proceeded202 = df_proceeded202.sort_values(by=['Time'])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "YTty1BPGeuSL"
      },
      "source": [
        "## **Preprocessing**"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dShXRO_vOy3Y"
      },
      "source": [
        "Journey 101 ***U Wandsbek Markt to S Rübenkamp***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eDs6hC7bZiAO",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "c347e105-9008-4067-8e4f-aa67df6bf7e8"
      },
      "source": [
        "data = df_proceeded[['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday', 'Driving_time_s']]\n",
        "data.index = df_proceeded['Time']\n",
        "data['Precipitation'] = data['Precipitation'].astype('int')\n",
        "data['timeofday'] = data['timeofday'].astype('int')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  This is separate from the ipykernel package so we can avoid doing imports until\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  after removing the cwd from sys.path.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "idrT_5hSe_ix"
      },
      "source": [
        "data"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "IKV5mWjM1HK8",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "bd969cb7-a962-4ce5-aa68-14fb2191db8f"
      },
      "source": [
        "data.loc[data.Precipitation == -499 ]=0"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py:1763: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  isetter(loc, value)\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6mhKpm9y1Jgr",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8dd03ebf-3e23-43c6-e45a-5bed7e46b217"
      },
      "source": [
        "data.loc[data.Precipitation == -499 ]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Node A to Node B</th>\n",
              "      <th>Precipitation</th>\n",
              "      <th>dayofweek</th>\n",
              "      <th>timeofday</th>\n",
              "      <th>Driving_time_s</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Time</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "Empty DataFrame\n",
              "Columns: [Node A to Node B, Precipitation, dayofweek, timeofday, Driving_time_s]\n",
              "Index: []"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZQi6xcGK1LrC"
      },
      "source": [
        "#data = data.loc[data['dayofweek'].isin([1])]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "idQfLoslqZm-"
      },
      "source": [
        "data = data.loc[data['Node A to Node B'].isin(['U Wandsbek Markt|Wandsbeker Allee',\n",
        "       'Wandsbeker Allee|U Straßburger Straße',\n",
        "       'U Straßburger Straße|U Alter Teichweg',\n",
        "       'U Alter Teichweg|Habichtstraße (Mitte)',\n",
        "       'Habichtstraße (Mitte)|U Habichtstraße',\n",
        "       'U Habichtstraße|Habichtsplatz', 'Habichtsplatz|Neue Wöhr',\n",
        "       'Neue Wöhr|Hartzloh', 'Hartzloh|AK Barmbek',\n",
        "       'AK Barmbek|Hebebrandstraße', 'Hebebrandstraße|S Rübenkamp'])]\n",
        "df_proceeded = data"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "zLiw2wEdcRyU",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "b9f29ed2-f9b4-4aec-bbd8-4079b6fcee4c"
      },
      "source": [
        "columns_to_category = ['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday']\n",
        "data[columns_to_category] = data[columns_to_category].astype('category') # change datetypes to category"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/pandas/core/frame.py:3069: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  self[k1] = value[k2]\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "wUdJ_TvledAy",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "06ff527b-d708-4bd6-b95b-75670feac2dc"
      },
      "source": [
        "data.dtypes"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Node A to Node B    category\n",
              "Precipitation       category\n",
              "dayofweek           category\n",
              "timeofday           category\n",
              "Driving_time_s       float64\n",
              "dtype: object"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 16
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hP7fpPv5gGiW"
      },
      "source": [
        "## One-hot encoding"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ngmjPjYBgSGb"
      },
      "source": [
        "One-hot encode the categorical feautures.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "YyXqx2CGfxN4",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "626bae51-b768-43b0-dbc5-c08aa793aff2"
      },
      "source": [
        "data = pd.get_dummies(data, columns=columns_to_category) # One hot encoding the categories\n",
        "data.head()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Driving_time_s</th>\n",
              "      <th>Node A to Node B_AK Barmbek|Hebebrandstraße</th>\n",
              "      <th>Node A to Node B_Habichtsplatz|Neue Wöhr</th>\n",
              "      <th>Node A to Node B_Habichtstraße (Mitte)|U Habichtstraße</th>\n",
              "      <th>Node A to Node B_Hartzloh|AK Barmbek</th>\n",
              "      <th>Node A to Node B_Hebebrandstraße|S Rübenkamp</th>\n",
              "      <th>Node A to Node B_Neue Wöhr|Hartzloh</th>\n",
              "      <th>Node A to Node B_U Alter Teichweg|Habichtstraße (Mitte)</th>\n",
              "      <th>Node A to Node B_U Habichtstraße|Habichtsplatz</th>\n",
              "      <th>Node A to Node B_U Straßburger Straße|U Alter Teichweg</th>\n",
              "      <th>Node A to Node B_U Wandsbek Markt|Wandsbeker Allee</th>\n",
              "      <th>Node A to Node B_Wandsbeker Allee|U Straßburger Straße</th>\n",
              "      <th>Precipitation_0</th>\n",
              "      <th>Precipitation_1</th>\n",
              "      <th>dayofweek_0</th>\n",
              "      <th>dayofweek_1</th>\n",
              "      <th>dayofweek_2</th>\n",
              "      <th>dayofweek_3</th>\n",
              "      <th>dayofweek_4</th>\n",
              "      <th>dayofweek_5</th>\n",
              "      <th>dayofweek_6</th>\n",
              "      <th>timeofday_0</th>\n",
              "      <th>timeofday_1</th>\n",
              "      <th>timeofday_2</th>\n",
              "      <th>timeofday_3</th>\n",
              "      <th>timeofday_4</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Time</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2019-01-02 09:47:00</th>\n",
              "      <td>204.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2019-01-02 09:50:00</th>\n",
              "      <td>108.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2019-01-02 09:52:00</th>\n",
              "      <td>96.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2019-01-02 09:54:00</th>\n",
              "      <td>168.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2019-01-02 09:57:00</th>\n",
              "      <td>54.0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                     Driving_time_s  ...  timeofday_4\n",
              "Time                                 ...             \n",
              "2019-01-02 09:47:00           204.0  ...            0\n",
              "2019-01-02 09:50:00           108.0  ...            0\n",
              "2019-01-02 09:52:00            96.0  ...            0\n",
              "2019-01-02 09:54:00           168.0  ...            0\n",
              "2019-01-02 09:57:00            54.0  ...            0\n",
              "\n",
              "[5 rows x 26 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 17
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NqNZvpJj3Ysa"
      },
      "source": [
        "data.describe"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "MGvKCxKSO9Zv"
      },
      "source": [
        "data101 = data.copy()\n",
        "data101"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lEUSFuXnPnVj"
      },
      "source": [
        "## Preprocessing with other journeys (routes)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zoXrAJDkPBPb"
      },
      "source": [
        "Route 102 ***S Rübenkamp to U Wandsbek Markt***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yMN02Xn0PL5I",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "48c1cd22-3ba5-46cd-9a5f-f61c651e923b"
      },
      "source": [
        "data = df_proceeded102[['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday', 'Driving_time_s']]\n",
        "data.index = df_proceeded102['Time']\n",
        "data['Precipitation'] = data['Precipitation'].astype('int')\n",
        "data['timeofday'] = data['timeofday'].astype('int')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  This is separate from the ipykernel package so we can avoid doing imports until\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  after removing the cwd from sys.path.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5KMirypDL9vz",
        "outputId": "99093712-6b2a-4d47-9dec-fc3a3d862b06"
      },
      "source": [
        "data.loc[data.Precipitation == -499 ]=0\n",
        "data.loc[data.Precipitation == -499 ]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py:1763: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  isetter(loc, value)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Node A to Node B</th>\n",
              "      <th>Precipitation</th>\n",
              "      <th>dayofweek</th>\n",
              "      <th>timeofday</th>\n",
              "      <th>Driving_time_s</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Time</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "Empty DataFrame\n",
              "Columns: [Node A to Node B, Precipitation, dayofweek, timeofday, Driving_time_s]\n",
              "Index: []"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "w0hOSnLnMoSs"
      },
      "source": [
        "data = data.loc[data['Node A to Node B'].isin(['U Straßburger Straße|Wandsbeker Allee',\n",
        "'AK Barmbek|Hartzloh',\n",
        "'U Habichtstraße|Habichtstraße (Mitte)',\n",
        "'Habichtsplatz|U Habichtstraße',\n",
        "'U Alter Teichweg|U Straßburger Straße',\n",
        "'Wandsbeker Allee|U Wandsbek Markt',\n",
        "'Hartzloh|Habichtsplatz',\n",
        "'S Rübenkamp|AK Barmbek',\n",
        "'Habichtstraße (Mitte)|U Alter Teichweg'])]\n",
        "df_proceeded102 = data"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5voDsmlDPNLc"
      },
      "source": [
        "columns_to_category = ['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday']\n",
        "data[columns_to_category] = data[columns_to_category].astype('category') # change datetypes to category"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5CNHFnEBPPyC"
      },
      "source": [
        "data = pd.get_dummies(data, columns=columns_to_category) # One-hot encoding the categories\n",
        "data[:50]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "nxtY2PbMPSbt"
      },
      "source": [
        "data102 = data.copy()\n",
        "data102"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tcrJ3n7fPVey"
      },
      "source": [
        "Route 201 ***U Wandsbek Markt to Lufthansa-Basis (Haupteingang)***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xw6FHyowPphg",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "55ecccc3-7597-41c3-c4b4-1a43ecaff2f8"
      },
      "source": [
        "data = df_proceeded201[['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday', 'Driving_time_s']]\n",
        "data.index = df_proceeded201['Time']\n",
        "data['Precipitation'] = data['Precipitation'].astype('int')\n",
        "data['timeofday'] = data['timeofday'].astype('int')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  This is separate from the ipykernel package so we can avoid doing imports until\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  after removing the cwd from sys.path.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "xq0gaaVyC1RZ",
        "outputId": "6d21c2d3-3516-4ef2-e0f5-4bfcd0850f48"
      },
      "source": [
        "data.loc[data.Precipitation == -499 ]=0\n",
        "data.loc[data.Precipitation == -499 ]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py:1763: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  isetter(loc, value)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Node A to Node B</th>\n",
              "      <th>Precipitation</th>\n",
              "      <th>dayofweek</th>\n",
              "      <th>timeofday</th>\n",
              "      <th>Driving_time_s</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Time</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "Empty DataFrame\n",
              "Columns: [Node A to Node B, Precipitation, dayofweek, timeofday, Driving_time_s]\n",
              "Index: []"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 27
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9oCb5ks3C5BI"
      },
      "source": [
        "data = data.loc[data['Node A to Node B'].isin(['Kapstadtring|Manilabrücke',\n",
        "'U Alsterdorf|Hindenburgstraße',\n",
        "'Habichtstraße (Mitte)|U Habichtstraße',\n",
        "'Neue Wöhr|Hartzloh',\n",
        "'Hartzloh|AK Barmbek',\n",
        "'Brabandstraße|Moltrechtweg',\n",
        "'Alsterkrugchaussee (Mitte)|Obenhauptstraße',\n",
        "'Manilabrücke|Sydneystraße',\n",
        "'Hebebrandstraße|S Rübenkamp',\n",
        "'U Habichtstraße|Habichtsplatz',\n",
        "'Moltrechtweg|Alsterkrugchaussee (Mitte)',\n",
        "'Hindenburgstraße|Brabandstraße',\n",
        "'S Rübenkamp|Kapstadtring',\n",
        "'Wandsbeker Allee|U Straßburger Straße',\n",
        "'Sydneystraße|U Alsterdorf',\n",
        "'Habichtsplatz|Neue Wöhr',\n",
        "'AK Barmbek|Hebebrandstraße',\n",
        "'U Straßburger Straße|U Alter Teichweg',\n",
        "'Obenhauptstraße|Lufthansa-Basis (Haupteingang)',\n",
        "'U Alter Teichweg|Habichtstraße (Mitte)',\n",
        "'U Wandsbek Markt|Wandsbeker Allee',\n",
        "])]\n",
        "df_proceeded201 = data"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "TJCYBpJJPwGT"
      },
      "source": [
        "columns_to_category = ['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday']\n",
        "data[columns_to_category] = data[columns_to_category].astype('category') # change datetypes to category"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "8cOGuVMOP1xG"
      },
      "source": [
        "data = pd.get_dummies(data, columns=columns_to_category) # One-hot encoding the categories\n",
        "data[:50]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "V7vEjg1uP4yW"
      },
      "source": [
        "data201 = data.copy()\n",
        "data201"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PBLdO4NQP56n"
      },
      "source": [
        "Route 202 ***Lufthansa-Basis (Haupteingang) to U Wandsbek Markt***"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_nPGb_2fP_2o",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "b10e29f2-677d-44df-c352-f69f4df887fa"
      },
      "source": [
        "data = df_proceeded202[['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday', 'Driving_time_s']]\n",
        "data.index = df_proceeded202['Time']\n",
        "data['Precipitation'] = data['Precipitation'].astype('int')\n",
        "data['timeofday'] = data['timeofday'].astype('int')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  This is separate from the ipykernel package so we can avoid doing imports until\n",
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:4: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  after removing the cwd from sys.path.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "T3Fc7VrFDiwi",
        "outputId": "bd8aecc1-7919-4d83-f31f-898561965b3a"
      },
      "source": [
        "data.loc[data.Precipitation == -499 ]=0\n",
        "data.loc[data.Precipitation == -499 ]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py:1763: SettingWithCopyWarning: \n",
            "A value is trying to be set on a copy of a slice from a DataFrame.\n",
            "Try using .loc[row_indexer,col_indexer] = value instead\n",
            "\n",
            "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
            "  isetter(loc, value)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Node A to Node B</th>\n",
              "      <th>Precipitation</th>\n",
              "      <th>dayofweek</th>\n",
              "      <th>timeofday</th>\n",
              "      <th>Driving_time_s</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Time</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "Empty DataFrame\n",
              "Columns: [Node A to Node B, Precipitation, dayofweek, timeofday, Driving_time_s]\n",
              "Index: []"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 33
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dNC2FLxSDlql"
      },
      "source": [
        "data = data.loc[data['Node A to Node B'].isin(['Lufthansa-Basis (Haupteingang)|Obenhauptstraße',\n",
        "        'Obenhauptstraße|Alsterkrugchaussee (Mitte)',\n",
        "        'Alsterkrugchaussee (Mitte)|Moltrechtweg',\n",
        "        'Moltrechtweg|Brabandstraße', 'Brabandstraße|Hindenburgstraße',\n",
        "        'Hindenburgstraße|U Alsterdorf', 'U Alsterdorf|Sydneystraße',\n",
        "        'Sydneystraße|Manilabrücke', 'Manilabrücke|Kapstadtring',\n",
        "        'Kapstadtring|S Rübenkamp', 'S Rübenkamp|AK Barmbek', 'AK Barmbek|Hartzloh',\n",
        "        'Hartzloh|Habichtsplatz', 'Habichtsplatz|U Habichtstraße',\n",
        "        'U Habichtstraße|Habichtstraße (Mitte)',\n",
        "        'Habichtstraße (Mitte)|U Alter Teichweg',\n",
        "        'U Alter Teichweg|U Straßburger Straße',\n",
        "        'U Straßburger Straße|Wandsbeker Allee',\n",
        "        'Wandsbeker Allee|U Wandsbek Markt'])]\n",
        "df_proceeded202 = data"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "KRW5qSTnQBKq"
      },
      "source": [
        "columns_to_category = ['Node A to Node B', 'Precipitation', 'dayofweek', 'timeofday']\n",
        "data[columns_to_category] = data[columns_to_category].astype('category') # change datetypes to category"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yGKpSFYaQNar"
      },
      "source": [
        "data = pd.get_dummies(data, columns=columns_to_category) # One hot encoding the categories\n",
        "data[:50]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "rX0K6hlXQDyi"
      },
      "source": [
        "data202 = data.copy()\n",
        "data202"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TWr1tngbQS9t"
      },
      "source": [
        "# Select route to implement"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "27vcUnOvQWAr"
      },
      "source": [
        "#select the route one by one\n",
        "route = 101\n",
        "month = 9\n",
        "\n",
        "if route == 101:\n",
        "  #route 101\n",
        "  data = data101.copy()\n",
        "  path_end = \"data101\"\n",
        "  path_name = \"Route 101 U Wandsbek Markt to S Rübenkamp\"\n",
        "  #bs = 2**4\n",
        "  #bs_name = str(bs)\n",
        "  #n_layers = 3\n",
        "\n",
        "elif route ==102:\n",
        "  #route 102\n",
        "  data = data102.copy()\n",
        "  path_end = \"data102\"\n",
        "  path_name = \"Route 102 S Rübenkamp to U Wandsbek Markt\"\n",
        "  #bs = 2**7\n",
        "  #bs_name = str(bs)\n",
        "  #n_layers = 2\n",
        "\n",
        "elif route == 201:\n",
        "  #route 201\n",
        "  data = data201.copy()\n",
        "  path_end = \"data201\"\n",
        "  path_name = \"Route 201 U Wandsbek Markt to Lufthansa-Basis (Haupteingang)\"\n",
        "  #bs = 2**6\n",
        "  #bs_name = str(bs)\n",
        "  #n_layers = 2\n",
        "\n",
        "elif route == 202:\n",
        "#route 202\n",
        "  data = data202.copy()\n",
        "  path_end = \"data202\"\n",
        "  path_name = \"Route 202 Lufthansa-Basis (Haupteingang) to U Wandsbek Markt\"\n",
        "  #bs = 2**6\n",
        "  #bs_name = str(bs)\n",
        "  #n_layers = 2\n",
        "\n"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "d4j7KD4XvjMn"
      },
      "source": [
        "data = data.loc[pd.to_datetime(data.index).month == month]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "P7MA4pvra7yU"
      },
      "source": [
        "#Import data to collect results and compare\n",
        "#st_comb_result = pd.read_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/combine_result_\"+path_end+\".csv\")\n",
        "#comb_result_rmse = pd.read_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/combine_result_rmse_\"+path_end+\".csv\")\n",
        "st_comb_result = pd.read_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/combine_result_\"+path_end+\"_m\"+str(month)+\".csv\")\n",
        "comb_result_rmse = pd.read_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/combine_result_rmse_\"+path_end+\"_m\"+str(month)+\".csv\")"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SMnb7iePbJUX"
      },
      "source": [
        "size_trip = len(st_comb_result['Path'].unique())\n",
        "#size_trip = 1"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "d5qdIctsQtZd"
      },
      "source": [
        "# set initial variables for RNN structure\n",
        "look_back = round(size_trip) #1*24 # D -> 1, H -> 5*24\n",
        "num_features = data.shape[1] - 1\n",
        "output_dim = 1\n"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XaLg54F00aHr"
      },
      "source": [
        "# Data Preprocessing to RNN format"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lhmR6mEMXpiz"
      },
      "source": [
        "\"The LSTM network expects the input data (X) to be provided with a specific array structure in the form of: [samples, time steps, features].\"\n",
        "\n",
        "https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "aXKas5PI04X9"
      },
      "source": [
        "def df_to_rnn_scaling(df, look_back=5, target_column='target'): #, test_size=0.5\n",
        "    df = df.copy()\n",
        "\n",
        "    # move traget function to last column of the dataframe\n",
        "    df['target'] = df[target_column] # Make a copy of the target column to the last column\n",
        "    df = df.drop(columns=[target_column]) # Drop the original target column\n",
        "    \n",
        "    target_location = df.shape[1] - 1 # column index number of target\n",
        "\n",
        "    \n",
        "    #Split with day of the month\n",
        "    s =pd.to_datetime(data.index).day.tolist()\n",
        "\n",
        "    split_index_val = s.index(15) #validation set is cover on 3th week\n",
        "    split_index_test = s.index(23) #test set covers last week\n",
        "    '''\n",
        "    \n",
        "    #Split with month\n",
        "    s =pd.to_datetime(df.index).month\n",
        "    d = pd.to_datetime(df.index).day\n",
        "\n",
        "    split_index_val = np.where((s == 4))[0][0]\n",
        "    split_index_test = np.where((s == 5) )[0][0] #& (d == 11)\n",
        "    split_index_end = np.where((s == 6) )[0][0]\n",
        "    '''\n",
        "    train = df[:split_index_val]\n",
        "    val = df[split_index_val:split_index_test]\n",
        "    test = df[split_index_test:] #split_index_end\n",
        "   \n",
        "    # features scaling\n",
        "    scaler = MinMaxScaler()\n",
        "    # fit scaler\n",
        "    scaler.fit(train)\n",
        "    # transform training dataset\n",
        "    train = scaler.transform(train)\n",
        "    # transform validation dataset\n",
        "    val = scaler.transform(val)\n",
        "    # transform test dataset\n",
        "    test = scaler.transform(test)\n",
        "\n",
        "    # ...train\n",
        "    X_train = train[:, :target_location]\n",
        "    y_train = train[:, target_location]\n",
        "\n",
        "    # ...validation\n",
        "    X_val = val[:, :target_location]\n",
        "    y_val = val[:, target_location]\n",
        "\n",
        "    # ...test\n",
        "    X_test = test[:, :target_location] \n",
        "    y_test = test[:, target_location] \n",
        "        \n",
        "    # Reshape the arrays\n",
        "    num_features = target_location # All columns before the target column are features\n",
        "\n",
        "    # train\n",
        "    samples_train = X_train.shape[0] - look_back\n",
        "    X_train_reshaped = np.zeros((samples_train, look_back, num_features)) # Initialize the required dataframe with an zeros array.\n",
        "    y_train_reshaped = np.zeros((samples_train))\n",
        "\n",
        "    for i in range(samples_train):\n",
        "        y_position = i + look_back\n",
        "        X_train_reshaped[i] = X_train[i:y_position]\n",
        "        y_train_reshaped[i] = y_train[y_position]\n",
        "\n",
        "    # validation\n",
        "    samples_val = X_val.shape[0] - look_back\n",
        "    X_val_reshaped = np.zeros((samples_val, look_back, num_features)) \n",
        "    y_val_reshaped = np.zeros((samples_val))\n",
        "\n",
        "    for i in range(samples_val):\n",
        "        y_position = i + look_back\n",
        "        X_val_reshaped[i] = X_val[i:y_position]\n",
        "        y_val_reshaped[i] = y_val[y_position]\n",
        "\n",
        "    # test\n",
        "    samples_test = X_test.shape[0] - look_back\n",
        "    X_test_reshaped = np.zeros((samples_test, look_back, num_features))\n",
        "    y_test_reshaped = np.zeros((samples_test))\n",
        "\n",
        "    for i in range(samples_test):\n",
        "        y_position = i + look_back\n",
        "        X_test_reshaped[i] = X_test[i:y_position]\n",
        "        y_test_reshaped[i] = y_test[y_position]\n",
        "    \n",
        "    return X_train_reshaped, y_train_reshaped, X_val_reshaped, y_val_reshaped, X_test_reshaped, y_test_reshaped, split_index_test, scaler"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SFFvVhA47SBl"
      },
      "source": [
        "X_train, y_train, X_val, y_val, X_test, y_test, split_index_test, scaler = df_to_rnn_scaling(df=data, look_back=look_back, target_column='Driving_time_s')"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Kk6vef9-KAw3",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "a8948745-c527-4f5d-ff43-3f57c9e75335"
      },
      "source": [
        "look_back"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "11"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 45
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6pcU1kHX8ZFR",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "3a125464-7c56-419d-eee8-70af9d64af84"
      },
      "source": [
        "print('X_train_shape: ', X_train.shape,' ', 'X_val_shape: ', X_val.shape,' ', 'X_test_shape: ', X_test.shape)\n",
        "print('y_train_shape: ', y_train.shape,' ', 'y_val_shape: ', y_val.shape,' ', 'y_test_shape: ', y_test.shape)\n",
        "print(look_back, num_features)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "X_train_shape:  (6659, 11, 25)   X_val_shape:  (3827, 11, 25)   X_test_shape:  (979, 11, 25)\n",
            "y_train_shape:  (6659,)   y_val_shape:  (3827,)   y_test_shape:  (979,)\n",
            "11 25\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "feIvsKi2Tfeq",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "efe9ded6-392c-45c7-ead5-2af27bec5864"
      },
      "source": [
        "date_time = pd.to_datetime(data.index)\n",
        "#plot_cols = ['T (degC)', 'p (mbar)', 'rho (g/m**3)']\n",
        "plot_features = data['Driving_time_s']\n",
        "plot_features.index = date_time\n",
        "_ = plot_features.plot()\n"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "wP2UFiMCRAnn"
      },
      "source": [
        "#check that this month data contains weekend?\n",
        "#data.loc[(pd.to_datetime(data.index).month == month)& (data['dayofweek_6']== 1) ]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Y6VYHgkItcXb"
      },
      "source": [
        "# LSTM model"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GaHBG9ECuror",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "07163246-7eb1-473c-bfbb-b0623a1c9d84"
      },
      "source": [
        "!pip show keras"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Name: Keras\n",
            "Version: 2.4.3\n",
            "Summary: Deep Learning for humans\n",
            "Home-page: https://github.com/keras-team/keras\n",
            "Author: Francois Chollet\n",
            "Author-email: francois.chollet@gmail.com\n",
            "License: MIT\n",
            "Location: /usr/local/lib/python3.6/dist-packages\n",
            "Requires: h5py, scipy, numpy, pyyaml\n",
            "Required-by: textgenrnn, keras-vis, kapre, fancyimpute\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9GclneuEBd4u"
      },
      "source": [
        "#!pip install tf-nightly"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OwCYWdLS_OOX",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ab86a2b2-c0d7-473a-f9be-d455cd3c75d4"
      },
      "source": [
        "# TensorFlow ≥2.0 is required\n",
        "import tensorflow as tf\n",
        "assert tf.__version__ >= \"2.0\"\n",
        "\n",
        "from tensorflow import keras\n",
        "from keras.layers import LeakyReLU\n",
        "from keras.layers.normalization import BatchNormalization\n",
        "keras.backend.clear_session()\n",
        "from keras.optimizers import Adam, SGD, Nadam\n",
        "!pip install livelossplot\n",
        "from livelossplot import PlotLossesKeras\n",
        "#from keras.experimental import CosineDecayRestarts\n",
        "\n",
        "from keras.models import load_model\n",
        "\n",
        "from keras.callbacks import EarlyStopping, TensorBoard, ModelCheckpoint\n",
        "from keras.constraints import min_max_norm"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting livelossplot\n",
            "  Downloading https://files.pythonhosted.org/packages/0f/08/1884157a3de72d41fa97cacacafaa49abf00eba53cb7e08615b2b65b4a9d/livelossplot-0.5.3-py3-none-any.whl\n",
            "Requirement already satisfied: ipython in /usr/local/lib/python3.6/dist-packages (from livelossplot) (5.5.0)\n",
            "Requirement already satisfied: matplotlib; python_version >= \"3.6\" in /usr/local/lib/python3.6/dist-packages (from livelossplot) (3.2.2)\n",
            "Requirement already satisfied: bokeh; python_version >= \"3.6\" in /usr/local/lib/python3.6/dist-packages (from livelossplot) (2.1.1)\n",
            "Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (4.3.3)\n",
            "Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (0.7.5)\n",
            "Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (0.8.1)\n",
            "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (51.3.3)\n",
            "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (4.8.0)\n",
            "Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (1.0.18)\n",
            "Requirement already satisfied: pygments in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (2.6.1)\n",
            "Requirement already satisfied: decorator in /usr/local/lib/python3.6/dist-packages (from ipython->livelossplot) (4.4.2)\n",
            "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.6/dist-packages (from matplotlib; python_version >= \"3.6\"->livelossplot) (1.19.5)\n",
            "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib; python_version >= \"3.6\"->livelossplot) (2.8.1)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib; python_version >= \"3.6\"->livelossplot) (1.3.1)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib; python_version >= \"3.6\"->livelossplot) (2.4.7)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib; python_version >= \"3.6\"->livelossplot) (0.10.0)\n",
            "Requirement already satisfied: Jinja2>=2.7 in /usr/local/lib/python3.6/dist-packages (from bokeh; python_version >= \"3.6\"->livelossplot) (2.11.2)\n",
            "Requirement already satisfied: PyYAML>=3.10 in /usr/local/lib/python3.6/dist-packages (from bokeh; python_version >= \"3.6\"->livelossplot) (3.13)\n",
            "Requirement already satisfied: packaging>=16.8 in /usr/local/lib/python3.6/dist-packages (from bokeh; python_version >= \"3.6\"->livelossplot) (20.8)\n",
            "Requirement already satisfied: typing-extensions>=3.7.4 in /usr/local/lib/python3.6/dist-packages (from bokeh; python_version >= \"3.6\"->livelossplot) (3.7.4.3)\n",
            "Requirement already satisfied: tornado>=5.1 in /usr/local/lib/python3.6/dist-packages (from bokeh; python_version >= \"3.6\"->livelossplot) (5.1.1)\n",
            "Requirement already satisfied: pillow>=4.0 in /usr/local/lib/python3.6/dist-packages (from bokeh; python_version >= \"3.6\"->livelossplot) (7.0.0)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.2->ipython->livelossplot) (1.15.0)\n",
            "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.2->ipython->livelossplot) (0.2.0)\n",
            "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.6/dist-packages (from pexpect; sys_platform != \"win32\"->ipython->livelossplot) (0.7.0)\n",
            "Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython->livelossplot) (0.2.5)\n",
            "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from Jinja2>=2.7->bokeh; python_version >= \"3.6\"->livelossplot) (1.1.1)\n",
            "Installing collected packages: livelossplot\n",
            "Successfully installed livelossplot-0.5.3\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bH9RTE-WE8Wn"
      },
      "source": [
        "#!pip install tf-nightly"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Ez8KtxXLcpTu",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "be00a734-c268-4bba-8421-d3684a3d12dc"
      },
      "source": [
        "'''device_name = tf.test.gpu_device_name()\n",
        "if device_name != '/device:GPU:0':\n",
        "  raise SystemError('GPU device not found')\n",
        "print('Found GPU at: {}'.format(device_name))'''"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "\"device_name = tf.test.gpu_device_name()\\nif device_name != '/device:GPU:0':\\n  raise SystemError('GPU device not found')\\nprint('Found GPU at: {}'.format(device_name))\""
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 53
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zHrjrugr1gNp"
      },
      "source": [
        "LSTM model\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "TGdkNlOQJ2qR",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "c2446c35-98a4-44f4-c7f5-da4070a04770"
      },
      "source": [
        "num_features"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "25"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 54
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NdeqWRzNzV1I"
      },
      "source": [
        "def LSTM_train(X_train = X_train, y_train = y_train, X_val = X_val, y_val = y_val,\n",
        "               X_test = X_test, y_test = y_test, look_back = look_back, num_features = num_features,\n",
        "               n_layers = 2, n_neurons = 64, bs_double = 4):\n",
        "\n",
        "    # to make this notebook's output stable across runs but it doesn't work with search logic.\n",
        "    np.random.seed(42)\n",
        "    tf.random.set_seed(42)\n",
        "\n",
        "    bs = 2**bs_double\n",
        "    bs_name = str(bs)\n",
        "\n",
        "    callback = keras.callbacks.EarlyStopping(monitor='val_loss', patience=5)\n",
        "\n",
        "    checkpoint1 = ModelCheckpoint(\"/content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_\"+path_end+bs_name+\".hdf5\", monitor='val_loss', verbose=1, save_best_only=True, mode='min')\n",
        "    #checkpoint2 = ModelCheckpoint(\"/content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_rmse_\"+path_end+bs_name+\".hdf5\", monitor='val_root_mean_squared_error', verbose=1, save_best_only=True, mode='min')\n",
        "    #checkpoint3 = ModelCheckpoint(\"/content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mae_\"+path_end+bs_name+\".hdf5\", monitor='val_mae', verbose=1, save_best_only=True, mode='min')\n",
        "\n",
        "    \n",
        "    #crate model\n",
        "    model = keras.models.Sequential() \n",
        "    #model.add(BatchNormalization(name = 'batch_norm_0', batch_input_shape= (bs, look_back, num_features))) #\n",
        "    #model.add(keras.layers.Bidirectional(keras.layers.LSTM(n_neurons, name = 'bidi_01', return_sequences = True)))\n",
        "    #model.add(keras.layers.Bidirectional(keras.layers.LSTM(int(n_neurons/2), name = 'bidi_02', return_sequences = True)))\n",
        "\n",
        "    #Hidden Layer 1\n",
        "    \n",
        "    model.add(keras.layers.LSTM(n_neurons, name = 'lstm_1', batch_input_shape= (bs, look_back, num_features), return_sequences=True, stateful=True, kernel_initializer='TruncatedNormal'))#, activation='relu'))\n",
        "    model.add(LeakyReLU(name = 'leaky_relu_1'))\n",
        "    model.add(keras.layers.Dropout(0.2, name = 'dropout_1'))\n",
        "    model.add(BatchNormalization(name = 'batch_norm_1'))\n",
        "\n",
        "    # Adds remaining hidden layers\n",
        "    for i in range(2, n_layers + 1):\n",
        "        if i == n_layers:\n",
        "            #model.add(keras.layers.Bidirectional(keras.layers.LSTM(n_neurons, name = 'lstm_{}'.format(i), return_sequences=False, stateful= False, kernel_initializer='TruncatedNormal', use_bias=False, activation='relu'))) #\n",
        "            model.add(keras.layers.LSTM(n_neurons, name = 'lstm_{}'.format(i), return_sequences=False, stateful= True, kernel_initializer='TruncatedNormal', use_bias=False, activation='relu')) #\n",
        "            model.add(keras.layers.Dropout(0.2, name = 'dropout_{}'.format(i)))\n",
        "            model.add(BatchNormalization(name = 'batch_norm_{}'.format(i)))\n",
        "        else:\n",
        "            #model.add(keras.layers.Bidirectional(keras.layers.LSTM(n_neurons, name = 'bidi_{}'.format(i), return_sequences = True)))\n",
        "            model.add(keras.layers.LSTM(n_neurons, name = 'lstm_{}'.format(i), return_sequences=True, stateful=True, kernel_initializer='TruncatedNormal', use_bias=False)) #,\n",
        "                            #name='h{}'.format(i)))#, activation='relu'))\n",
        "            model.add(LeakyReLU(name = 'leaky_relu_{}'.format(i)))\n",
        "            model.add(keras.layers.Dropout(0.2, name = 'dropout_{}'.format(i)))\n",
        "            model.add(BatchNormalization(name = 'batch_norm_{}'.format(i)))\n",
        "\n",
        "    #Layer output\n",
        "    model.add(keras.layers.Dense(1))\n",
        " \n",
        "    '''\n",
        "    #crate model\n",
        "    model = keras.models.Sequential() \n",
        "    model.add(BatchNormalization(name = 'batch_norm_0', input_shape = (look_back, num_features)))\n",
        "    #Hidden Layer 1\n",
        "    model.add(keras.layers.LSTM(n_neurons, name = 'lstm_1', return_sequences=True, kernel_initializer='TruncatedNormal'))#, activation='relu'))\n",
        "    model.add(LeakyReLU())\n",
        "    model.add(keras.layers.Dropout(0.01, name = 'dropout_1'))\n",
        "    model.add(BatchNormalization(name = 'batch_norm_1'))\n",
        "\n",
        "    # Adds remaining hidden layers\n",
        "    for i in range(2, n_layers + 1):\n",
        "        if i == n_layers:\n",
        "            model.add(keras.layers.LSTM(n_neurons, name = 'lstm_{}'.format(i), return_sequences=False, kernel_initializer='TruncatedNormal', use_bias=False, activation='relu'))\n",
        "            model.add(keras.layers.Dropout(0.01, name = 'dropout_{}'.format(i)))\n",
        "            model.add(BatchNormalization(name = 'batch_norm_{}'.format(i)))\n",
        "        else:\n",
        "            model.add(keras.layers.LSTM(n_neurons*(2**i), name = 'lstm_{}'.format(i), return_sequences=True, kernel_initializer='TruncatedNormal', use_bias=False)) #,\n",
        "                            #name='h{}'.format(i)))#, activation='relu'))\n",
        "            model.add(LeakyReLU())\n",
        "            model.add(keras.layers.Dropout(0.01, name = 'dropout_{}'.format(i)))\n",
        "            model.add(BatchNormalization(name = 'batch_norm_{}'.format(i)))\n",
        "\n",
        "    #Layer output\n",
        "    model.add(keras.layers.Dense(1)) #,  kernel_constraint = NonNeg , activation='relu', kernel_constraint = min_max_norm(min_value=0.0, max_value=1.0 )\n",
        "    '''\n",
        "    #set learning rate and optimizer\n",
        "    lr=1.e-3\n",
        "    '''\n",
        "    n_steps=2000\n",
        "    global_step=1\n",
        "    LR = keras.experimental.CosineDecayRestarts(\n",
        "        initial_learning_rate=lr,\n",
        "        first_decay_steps=n_steps,\n",
        "        t_mul= 1.5,\n",
        "        m_mul= 1,\n",
        "        alpha=0.1,\n",
        "        name=None\n",
        "    )\n",
        "    '''\n",
        "    adam = Adam(learning_rate=lr) #, weight_decay=1e-5)\n",
        "\n",
        "\n",
        "    model.compile(loss=\"mean_squared_error\", optimizer=adam, metrics=['RootMeanSquaredError', 'mae'])\n",
        "\n",
        "    model.fit(X_train, y_train, epochs=50, batch_size=bs, callbacks=[callback, checkpoint1], # checkpoint2, checkpoint3, PlotLossesKeras()\n",
        "              validation_data=(X_val, y_val)) #, shuffle=False\n",
        "    #model.reset_states\n",
        "  \n",
        "    # Load the architecture\n",
        "    model = load_model(\"/content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_\"+path_end+bs_name+\".hdf5\")\n",
        "\n",
        "    # Compile with the same settings as it has been saved with earlier\n",
        "    #model.compile(loss=\"mean_squared_error\", optimizer=adam, metrics=['RootMeanSquaredError', 'mae'])\n",
        "\n",
        "    # Calculate the RMSE score as fitness score for GA\n",
        "    rmse = model.evaluate(X_val, y_val)[1]\n",
        "    #print('Validation RMSE: ', rmse,'\\n')\n",
        "    \n",
        "    return rmse,"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-fC3uALkfQ3U",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "973a9719-b666-43bd-9c1a-26f554d66e27"
      },
      "source": [
        "!pip install ipython-autotime\n",
        "\n",
        "%load_ext autotime"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting ipython-autotime\n",
            "  Downloading https://files.pythonhosted.org/packages/b4/c9/b413a24f759641bc27ef98c144b590023c8038dfb8a3f09e713e9dff12c1/ipython_autotime-0.3.1-py2.py3-none-any.whl\n",
            "Requirement already satisfied: ipython in /usr/local/lib/python3.6/dist-packages (from ipython-autotime) (5.5.0)\n",
            "Requirement already satisfied: pygments in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (2.6.1)\n",
            "Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (0.8.1)\n",
            "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (51.3.3)\n",
            "Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (0.7.5)\n",
            "Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (1.0.18)\n",
            "Requirement already satisfied: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (4.8.0)\n",
            "Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (4.3.3)\n",
            "Requirement already satisfied: decorator in /usr/local/lib/python3.6/dist-packages (from ipython->ipython-autotime) (4.4.2)\n",
            "Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython->ipython-autotime) (0.2.5)\n",
            "Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython->ipython-autotime) (1.15.0)\n",
            "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.6/dist-packages (from pexpect; sys_platform != \"win32\"->ipython->ipython-autotime) (0.7.0)\n",
            "Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.2->ipython->ipython-autotime) (0.2.0)\n",
            "Installing collected packages: ipython-autotime\n",
            "Successfully installed ipython-autotime-0.3.1\n",
            "time: 173 µs (started: 2021-01-25 22:37:48 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "dUuJxgIPeoM4"
      },
      "source": [
        "# Using genetic algorithms to fine-tune hyperparameters in the model\n",
        "\n",
        "time window size = look back\n",
        "\n",
        "number of unit = nuerons in hidden layers\n",
        "\n",
        "[code adapted from https://blog.coast.ai/lets-evolve-a-neural-network-with-a-genetic-algorithm-code-included-8809bece164]"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "G07oJKZ6nvnB",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8ff96a94-0b2d-4934-d96a-1f3159d4f74c"
      },
      "source": [
        "nn_param_choices = {\n",
        "    'n_neurons': [16, 32, 64, 128], #, 512, 768, 1024\n",
        "    'n_layers': [2, 3, 4], #\n",
        "    'bs_double': [4, 5, 6, 7, 8, 9, 10], # , 4, 5, 6, 7, 8, 9, 10\n",
        "    'n_timewindow' : [0.5, 1, 1.5, 2], #0.5, 1, 1.5, 2\n",
        "    \n",
        "}\n",
        "network = {} #vector\n",
        "count = 10 # Number of population in each generation.\n",
        "generations = 5  # Number of times to produce the generation.\n",
        "retain=0.4 # the of population that will keep from the current gen to next gen.\n",
        "random_select=0.1 # randomly keep the abandon vectors by compare a random number with this value.\n",
        "mutate_chance=0.2 # Randomly mutate the children that have a random number higher than this number.\n"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 6.51 ms (started: 2021-01-25 22:37:48 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "gWr0kflMiIh4",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "a0754158-0f90-4db0-fec7-ae07e93c35dc"
      },
      "source": [
        "#create a random vector(network)\n",
        "def create_rand(nn_param_choices):\n",
        "  for key in nn_param_choices:\n",
        "    network[key] = random.choice(nn_param_choices[key])\n",
        "  return network"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 1.54 ms (started: 2021-01-25 22:37:49 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "wmzmk8GMpMRu",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "29c445c4-4376-4ca7-93b9-aec146bf2907"
      },
      "source": [
        "#create population from the create_rand function as prerequisite size\n",
        "def create_population(nn_param_choices, count):\n",
        "  pop = []\n",
        "  for _ in range(0, count):\n",
        "      n = create_rand(nn_param_choices).copy()\n",
        "      pop.append(n)\n",
        "  return pop"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 5.15 ms (started: 2021-01-25 22:37:49 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "rnk7dNzqImYJ",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "becaf734-4ca7-4d57-e9c7-a7a3cfa0a5b7"
      },
      "source": [
        "#train each vector in population to get fitness value\n",
        "def train_networks(networks, data= data):\n",
        "    pbar = tqdm(total=len(networks))\n",
        "    accuracy = []\n",
        "    for network in networks:\n",
        "        print(network)\n",
        "        print(network['n_neurons'])\n",
        "        look_back = round(size_trip*network['n_timewindow'])\n",
        "        X_train, y_train, X_val, y_val, X_test, y_test, split_index_test, scaler = df_to_rnn_scaling(df=data, look_back=look_back, target_column='Driving_time_s')\n",
        "        accuracy.append(LSTM_train(X_train, y_train, X_val, y_val, X_test, y_test , look_back , n_neurons= network['n_neurons'], n_layers= network['n_layers'], bs_double= network['bs_double']))\n",
        "        pbar.update(1)\n",
        "    pbar.close()\n",
        "    return accuracy"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 13.2 ms (started: 2021-01-25 22:37:49 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "KtagokRzADK3",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8620fd6e-6121-4210-e671-a47f219152bc"
      },
      "source": [
        "networks = create_population(nn_param_choices, count)\n",
        "networks"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[{'bs_double': 10, 'n_layers': 4, 'n_neurons': 32, 'n_timewindow': 2},\n",
              " {'bs_double': 5, 'n_layers': 4, 'n_neurons': 32, 'n_timewindow': 2},\n",
              " {'bs_double': 7, 'n_layers': 3, 'n_neurons': 32, 'n_timewindow': 1},\n",
              " {'bs_double': 8, 'n_layers': 4, 'n_neurons': 64, 'n_timewindow': 1.5},\n",
              " {'bs_double': 7, 'n_layers': 3, 'n_neurons': 32, 'n_timewindow': 1.5},\n",
              " {'bs_double': 9, 'n_layers': 3, 'n_neurons': 64, 'n_timewindow': 2},\n",
              " {'bs_double': 6, 'n_layers': 3, 'n_neurons': 32, 'n_timewindow': 1},\n",
              " {'bs_double': 7, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 1.5},\n",
              " {'bs_double': 8, 'n_layers': 4, 'n_neurons': 64, 'n_timewindow': 1},\n",
              " {'bs_double': 4, 'n_layers': 3, 'n_neurons': 16, 'n_timewindow': 1}]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 62
        },
        {
          "output_type": "stream",
          "text": [
            "time: 6.15 ms (started: 2021-01-25 22:37:59 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "c1kKfJvZLVem",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "2d84f763-36db-41ef-bd3f-8de3f9bca7b7"
      },
      "source": [
        "#networks[1]['n_timewindow']\n",
        "#networks == [{'bs_double': 9, 'n_layers': 2, 'n_neurons': 128, 'n_timewindow': 0.5}]\n",
        "#networks.index({'bs_double': 8, 'n_layers': 2, 'n_neurons': 128, 'n_timewindow': 0.5})\n",
        "#{'bs_double': 9, 'n_layers': 2, 'n_neurons': 128, 'n_timewindow': 0.5} in networks\n",
        "networks[:3]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[{'bs_double': 8, 'n_layers': 4, 'n_neurons': 64, 'n_timewindow': 2},\n",
              " {'bs_double': 8, 'n_layers': 4, 'n_neurons': 128, 'n_timewindow': 1.5},\n",
              " {'bs_double': 8, 'n_layers': 4, 'n_neurons': 128, 'n_timewindow': 0.5}]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 150
        },
        {
          "output_type": "stream",
          "text": [
            "time: 7.85 ms (started: 2021-01-14 16:33:46 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "MatFWkKGZYR6",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ff7c6a4d-cbf8-4095-fa24-56525086ef90"
      },
      "source": [
        "#offspring children by crossover then two new children are produced\n",
        "def breed(mother, father, nn_param_choices = nn_param_choices, mutate_chance=0.2):\n",
        "    children = []\n",
        "    for _ in range(2):\n",
        "\n",
        "        child = {}\n",
        "\n",
        "        if _ == 1:\n",
        "            for param in nn_param_choices:\n",
        "                if children[0][param] == mother[param]:\n",
        "                    child[param] = father[param]\n",
        "                else:\n",
        "                    child[param] = mother[param]\n",
        "        else:\n",
        "            # Loop through the parameters\n",
        "            for param in nn_param_choices:\n",
        "                child[param] = random.choice(\n",
        "                    [mother[param], father[param]]\n",
        "                )\n",
        "\n",
        "        # Randomly mutate some of the children.\n",
        "        if mutate_chance > random.random():\n",
        "            network = mutate(child)\n",
        "\n",
        "        children.append(child)\n",
        "\n",
        "    return children"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 9.14 ms (started: 2021-01-25 22:38:07 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "b-YPo5YUepX5",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "975343ac-7c7b-45b9-dc3d-18611099e62b"
      },
      "source": [
        "#mutate some part of hyperparameter set\n",
        "def mutate(child):\n",
        "    # Choose a random parm.\n",
        "    mutation = random.choice(list(nn_param_choices.keys()))\n",
        "\n",
        "    # Mutate the random params.\n",
        "    child[mutation] = random.choice(nn_param_choices[mutation])\n",
        "\n",
        "    return child"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 2.29 ms (started: 2021-01-25 22:38:10 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ncHTzX3BOomW",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e0465c07-1e11-454e-8fee-ae62f50b5515"
      },
      "source": [
        "#evolve function to generate a new generation\n",
        "def evolve(networks, parent_accuracy=[1,1,1,1], retain=retain, random_select=0.1, nn_param_choices = nn_param_choices, iteration = 1):\n",
        "    \n",
        "    # find the size of parents to retian in the next gen\n",
        "    retain_length = int(len(networks)*retain)\n",
        "    \n",
        "    # Get scores for each network\n",
        "    if iteration == 0: #train all networks to get score\n",
        "        accuracy = train_networks(networks)\n",
        "    else: #in other generation get score for remain parents from previous training\n",
        "        accuracy_parent_last = parent_accuracy\n",
        "        accuracy_child = train_networks(networks[retain_length:])\n",
        "        accuracy = accuracy_parent_last + accuracy_child\n",
        "\n",
        "    # ranking the scores\n",
        "    sorted_network_accuracy = [x for _,x in sorted(zip(accuracy,networks), key=lambda pair: pair[0])]\n",
        "    sorted_accuracy = sorted(accuracy)\n",
        "\n",
        "    # The remain parents\n",
        "    parents = sorted_network_accuracy[:retain_length]\n",
        "    parents_acc = sorted_accuracy[:retain_length]\n",
        "\n",
        "    # randomly keep some of unqualified vectors.\n",
        "    for individual in sorted_network_accuracy[retain_length:]:\n",
        "        if random_select > random.random():\n",
        "            parents.append(individual)\n",
        "\n",
        "    # find number of free spots\n",
        "    parents_length = len(parents)\n",
        "    desired_length = len(networks) - parents_length\n",
        "    children = []\n",
        "\n",
        "    # Add children to the free spaces\n",
        "    while len(children) < desired_length:\n",
        "\n",
        "        # random mother and father.\n",
        "        male = random.randint(0, parents_length-1)\n",
        "        female = random.randint(0, parents_length-1)\n",
        "\n",
        "        # ensure that they are not the same vector\n",
        "        if male != female:\n",
        "            male = parents[male]\n",
        "            female = parents[female]\n",
        "\n",
        "            # Offspring\n",
        "            babies = breed(male, female, nn_param_choices)\n",
        "\n",
        "            # Add kid one by one to make sure it dose not exceed free spaces\n",
        "            for baby in babies:\n",
        "                if (len(children) < desired_length) & ~(baby in parents):\n",
        "                    children.append(baby)\n",
        "\n",
        "    parents.extend(children)\n",
        "    #print(parents_acc)\n",
        "\n",
        "    return parents, parents_acc"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 32.9 ms (started: 2021-01-25 22:38:15 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9kyJnnccrjJj",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "023cbedd-cd28-4fee-dc8f-febc61059811"
      },
      "source": [
        "#function to run the genetic algorithm\n",
        "def generate(generations, count, nn_param_choices, networks):\n",
        "    #networks = create_population(nn_param_choices, count) #if want to initial networks here\n",
        "    networks = networks\n",
        "    #dummy parent_acc for the first iteration\n",
        "    parent_acc = list(range(int(len(networks)*retain)))\n",
        "    print(networks)\n",
        "    #run iterations\n",
        "    for i in range(generations-1):\n",
        "        print('Iteration: ', i+1)\n",
        "        #print(networks)\n",
        "        networks, parent_acc = evolve(networks, parent_accuracy= parent_acc, iteration = i)\n",
        "        print(networks)\n",
        "    \n",
        "    #get the score\n",
        "    print('Iteration: ', i+2)\n",
        "    score = train_networks(networks)\n",
        "\n",
        "    #ranking\n",
        "    sorted_network_score = [x for _,x in sorted(zip(score,networks), key=lambda pair: pair[0])]\n",
        "    sorted_score = sorted(score)\n",
        "    return sorted_network_score,sorted_score"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 17.2 ms (started: 2021-01-25 22:38:18 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fLiKySnnGKYR",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "6275b3a7-164e-4058-9e12-7388469c372c"
      },
      "source": [
        "#for 201 that exeed the maximum running time\n",
        "#networks = [{'n_neurons': 32, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}]\n",
        "#[{'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5},{'n_neurons': 64, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 0.5}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 0.5}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 0.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 0.5}] iter 3\n",
        "#networks\n",
        "#for 202 that exeed the maximum running time\n",
        "networks = [{'n_neurons': 64, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 128, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 64, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}]\n",
        "\n",
        "\n",
        "networks"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[{'bs_double': 5, 'n_layers': 2, 'n_neurons': 64, 'n_timewindow': 1.5},\n",
              " {'bs_double': 5, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 2},\n",
              " {'bs_double': 5, 'n_layers': 2, 'n_neurons': 128, 'n_timewindow': 2},\n",
              " {'bs_double': 6, 'n_layers': 3, 'n_neurons': 16, 'n_timewindow': 1.5},\n",
              " {'bs_double': 5, 'n_layers': 4, 'n_neurons': 64, 'n_timewindow': 1.5},\n",
              " {'bs_double': 6, 'n_layers': 2, 'n_neurons': 64, 'n_timewindow': 1.5},\n",
              " {'bs_double': 6, 'n_layers': 2, 'n_neurons': 64, 'n_timewindow': 1.5},\n",
              " {'bs_double': 5, 'n_layers': 3, 'n_neurons': 16, 'n_timewindow': 2},\n",
              " {'bs_double': 6, 'n_layers': 4, 'n_neurons': 64, 'n_timewindow': 1.5},\n",
              " {'bs_double': 5, 'n_layers': 4, 'n_neurons': 16, 'n_timewindow': 1.5}]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 67
        },
        {
          "output_type": "stream",
          "text": [
            "time: 17.4 ms (started: 2021-01-25 22:38:21 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hvJc1NJAH_c4",
        "outputId": "98fdc1b9-3bbc-4983-ce40-fcfc19d18a71"
      },
      "source": [
        "ga_network, rmse = generate(generations, count, nn_param_choices, networks)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\r  0%|          | 0/10 [00:00<?, ?it/s]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "[{'n_neurons': 64, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 128, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 64, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}]\n",
            "Iteration:  1\n",
            "{'n_neurons': 64, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "64\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 10s 30ms/step - loss: 0.3110 - root_mean_squared_error: 0.5303 - mae: 0.3778 - val_loss: 0.0148 - val_root_mean_squared_error: 0.1218 - val_mae: 0.1101\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01483, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 5s 26ms/step - loss: 0.0478 - root_mean_squared_error: 0.2186 - mae: 0.1559 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0972 - val_mae: 0.0723\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01483 to 0.00945, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 5s 26ms/step - loss: 0.0291 - root_mean_squared_error: 0.1704 - mae: 0.1170 - val_loss: 0.0082 - val_root_mean_squared_error: 0.0906 - val_mae: 0.0694\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.00945 to 0.00820, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 5s 26ms/step - loss: 0.0269 - root_mean_squared_error: 0.1636 - mae: 0.1069 - val_loss: 0.0056 - val_root_mean_squared_error: 0.0746 - val_mae: 0.0548\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.00820 to 0.00557, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 5s 25ms/step - loss: 0.0197 - root_mean_squared_error: 0.1401 - mae: 0.0919 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0738 - val_mae: 0.0512\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00557 to 0.00544, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 5s 26ms/step - loss: 0.0194 - root_mean_squared_error: 0.1385 - mae: 0.0870 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0664 - val_mae: 0.0510\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00544 to 0.00441, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 5s 26ms/step - loss: 0.0161 - root_mean_squared_error: 0.1268 - mae: 0.0824 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0557 - val_mae: 0.0404\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00441 to 0.00310, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 5s 26ms/step - loss: 0.0184 - root_mean_squared_error: 0.1354 - mae: 0.0818 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0530 - val_mae: 0.0379\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00310 to 0.00281, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 5s 25ms/step - loss: 0.0143 - root_mean_squared_error: 0.1195 - mae: 0.0731 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0563 - val_mae: 0.0417\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00281\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 5s 26ms/step - loss: 0.0163 - root_mean_squared_error: 0.1276 - mae: 0.0776 - val_loss: 0.0050 - val_root_mean_squared_error: 0.0709 - val_mae: 0.0544\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00281\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 5s 25ms/step - loss: 0.0150 - root_mean_squared_error: 0.1226 - mae: 0.0785 - val_loss: 0.0062 - val_root_mean_squared_error: 0.0790 - val_mae: 0.0559\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00281\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 5s 25ms/step - loss: 0.0116 - root_mean_squared_error: 0.1077 - mae: 0.0686 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0615 - val_mae: 0.0455\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00281\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 5s 25ms/step - loss: 0.0095 - root_mean_squared_error: 0.0973 - mae: 0.0641 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0628 - val_mae: 0.0483\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00281\n",
            "120/120 [==============================] - 1s 5ms/step - loss: 0.0028 - root_mean_squared_error: 0.0530 - mae: 0.0379\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 10%|█         | 1/10 [01:20<12:04, 80.50s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 8s 25ms/step - loss: 0.3829 - root_mean_squared_error: 0.5631 - mae: 0.3789 - val_loss: 0.0118 - val_root_mean_squared_error: 0.1085 - val_mae: 0.0693\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01177, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 5s 22ms/step - loss: 0.0382 - root_mean_squared_error: 0.1952 - mae: 0.1316 - val_loss: 0.0161 - val_root_mean_squared_error: 0.1268 - val_mae: 0.0930\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01177\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 5s 24ms/step - loss: 0.0272 - root_mean_squared_error: 0.1647 - mae: 0.1064 - val_loss: 0.0127 - val_root_mean_squared_error: 0.1127 - val_mae: 0.0859\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01177\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0194 - root_mean_squared_error: 0.1392 - mae: 0.0878 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0819 - val_mae: 0.0604\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01177 to 0.00670, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0182 - root_mean_squared_error: 0.1349 - mae: 0.0834 - val_loss: 0.0078 - val_root_mean_squared_error: 0.0882 - val_mae: 0.0672\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00670\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0138 - root_mean_squared_error: 0.1173 - mae: 0.0737 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0727 - val_mae: 0.0538\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00670 to 0.00529, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0139 - root_mean_squared_error: 0.1173 - mae: 0.0725 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0684 - val_mae: 0.0496\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00529 to 0.00468, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0098 - root_mean_squared_error: 0.0991 - mae: 0.0649 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0608 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00468 to 0.00370, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0095 - root_mean_squared_error: 0.0976 - mae: 0.0628 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0636 - val_mae: 0.0460\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00370\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0101 - root_mean_squared_error: 0.1002 - mae: 0.0631 - val_loss: 0.0052 - val_root_mean_squared_error: 0.0724 - val_mae: 0.0538\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00370\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0101 - root_mean_squared_error: 0.0993 - mae: 0.0634 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0726 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00370\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0074 - root_mean_squared_error: 0.0857 - mae: 0.0562 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0555 - val_mae: 0.0399\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00370 to 0.00308, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0068 - root_mean_squared_error: 0.0821 - mae: 0.0526 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0569 - val_mae: 0.0407\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00308\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0049 - root_mean_squared_error: 0.0697 - mae: 0.0484 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0530 - val_mae: 0.0380\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00308 to 0.00281, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 5s 24ms/step - loss: 0.0055 - root_mean_squared_error: 0.0739 - mae: 0.0462 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0504 - val_mae: 0.0352\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00281 to 0.00254, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0046 - root_mean_squared_error: 0.0673 - mae: 0.0441 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0455 - val_mae: 0.0304\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00254 to 0.00207, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0042 - root_mean_squared_error: 0.0645 - mae: 0.0433 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0494 - val_mae: 0.0346\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00207\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0042 - root_mean_squared_error: 0.0649 - mae: 0.0424 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0300\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00207 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0045 - root_mean_squared_error: 0.0666 - mae: 0.0421 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00019: val_loss did not improve from 0.00199\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0034 - root_mean_squared_error: 0.0586 - mae: 0.0400 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0449 - val_mae: 0.0298\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00199\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0035 - root_mean_squared_error: 0.0593 - mae: 0.0388 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0449 - val_mae: 0.0298\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00199\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0035 - root_mean_squared_error: 0.0593 - mae: 0.0384 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0306\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00199\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0036 - root_mean_squared_error: 0.0598 - mae: 0.0395 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0442 - val_mae: 0.0294\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00199 to 0.00195, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0033 - root_mean_squared_error: 0.0573 - mae: 0.0380 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0441 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00195 to 0.00194, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 5s 24ms/step - loss: 0.0042 - root_mean_squared_error: 0.0648 - mae: 0.0438 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0608 - val_mae: 0.0408\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00194\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 5s 24ms/step - loss: 0.0040 - root_mean_squared_error: 0.0632 - mae: 0.0433 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0564 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00194\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0036 - root_mean_squared_error: 0.0596 - mae: 0.0401 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0451 - val_mae: 0.0301\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00194\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0032 - root_mean_squared_error: 0.0565 - mae: 0.0380 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0496 - val_mae: 0.0336\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00194\n",
            "Epoch 29/50\n",
            "208/208 [==============================] - 5s 23ms/step - loss: 0.0032 - root_mean_squared_error: 0.0563 - mae: 0.0378 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0449 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00194\n",
            "120/120 [==============================] - 1s 5ms/step - loss: 0.0019 - root_mean_squared_error: 0.0441 - mae: 0.0291\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 20%|██        | 2/10 [03:51<13:33, 101.74s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 128, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}\n",
            "128\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 17s 65ms/step - loss: 0.4277 - root_mean_squared_error: 0.6212 - mae: 0.4450 - val_loss: 0.0191 - val_root_mean_squared_error: 0.1380 - val_mae: 0.1027\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01905, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 13s 62ms/step - loss: 0.0489 - root_mean_squared_error: 0.2210 - mae: 0.1643 - val_loss: 0.0093 - val_root_mean_squared_error: 0.0964 - val_mae: 0.0713\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01905 to 0.00930, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 13s 62ms/step - loss: 0.0339 - root_mean_squared_error: 0.1841 - mae: 0.1352 - val_loss: 0.0139 - val_root_mean_squared_error: 0.1180 - val_mae: 0.0977\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00930\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 13s 62ms/step - loss: 0.0272 - root_mean_squared_error: 0.1647 - mae: 0.1174 - val_loss: 0.0058 - val_root_mean_squared_error: 0.0759 - val_mae: 0.0564\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.00930 to 0.00575, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 13s 62ms/step - loss: 0.0212 - root_mean_squared_error: 0.1454 - mae: 0.1007 - val_loss: 0.0055 - val_root_mean_squared_error: 0.0742 - val_mae: 0.0574\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00575 to 0.00551, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 13s 61ms/step - loss: 0.0186 - root_mean_squared_error: 0.1363 - mae: 0.0906 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0713 - val_mae: 0.0542\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00551 to 0.00509, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 13s 63ms/step - loss: 0.0162 - root_mean_squared_error: 0.1272 - mae: 0.0868 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0610 - val_mae: 0.0448\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00509 to 0.00372, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 13s 61ms/step - loss: 0.0184 - root_mean_squared_error: 0.1354 - mae: 0.0908 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0548 - val_mae: 0.0405\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00372 to 0.00300, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 13s 61ms/step - loss: 0.0150 - root_mean_squared_error: 0.1225 - mae: 0.0805 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0529 - val_mae: 0.0385\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00300 to 0.00280, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 13s 63ms/step - loss: 0.0163 - root_mean_squared_error: 0.1277 - mae: 0.0834 - val_loss: 0.0131 - val_root_mean_squared_error: 0.1144 - val_mae: 0.0949\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00280\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 18s 89ms/step - loss: 0.0176 - root_mean_squared_error: 0.1324 - mae: 0.0942 - val_loss: 0.0060 - val_root_mean_squared_error: 0.0773 - val_mae: 0.0605\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00280\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 13s 62ms/step - loss: 0.0155 - root_mean_squared_error: 0.1243 - mae: 0.0875 - val_loss: 0.0041 - val_root_mean_squared_error: 0.0644 - val_mae: 0.0499\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00280\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 13s 62ms/step - loss: 0.0103 - root_mean_squared_error: 0.1015 - mae: 0.0704 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0685 - val_mae: 0.0527\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00280\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 13s 62ms/step - loss: 0.0106 - root_mean_squared_error: 0.1027 - mae: 0.0715 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0622 - val_mae: 0.0484\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00280\n",
            "120/120 [==============================] - 2s 14ms/step - loss: 0.0028 - root_mean_squared_error: 0.0529 - mae: 0.0385\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 30%|███       | 3/10 [07:20<15:36, 133.73s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 9s 42ms/step - loss: 0.3031 - root_mean_squared_error: 0.5118 - mae: 0.3373 - val_loss: 0.0191 - val_root_mean_squared_error: 0.1382 - val_mae: 0.1286\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01910, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0663 - root_mean_squared_error: 0.2573 - mae: 0.1580 - val_loss: 0.0325 - val_root_mean_squared_error: 0.1804 - val_mae: 0.1685\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01910\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0374 - root_mean_squared_error: 0.1934 - mae: 0.1216 - val_loss: 0.0377 - val_root_mean_squared_error: 0.1942 - val_mae: 0.1805\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01910\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0369 - root_mean_squared_error: 0.1916 - mae: 0.1128 - val_loss: 0.0302 - val_root_mean_squared_error: 0.1738 - val_mae: 0.1580\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01910\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0288 - root_mean_squared_error: 0.1694 - mae: 0.1013 - val_loss: 0.0177 - val_root_mean_squared_error: 0.1330 - val_mae: 0.1135\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01910 to 0.01770, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0263 - root_mean_squared_error: 0.1610 - mae: 0.0936 - val_loss: 0.0096 - val_root_mean_squared_error: 0.0980 - val_mae: 0.0795\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.01770 to 0.00961, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0241 - root_mean_squared_error: 0.1540 - mae: 0.0890 - val_loss: 0.0107 - val_root_mean_squared_error: 0.1033 - val_mae: 0.0817\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00961\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0196 - root_mean_squared_error: 0.1392 - mae: 0.0803 - val_loss: 0.0057 - val_root_mean_squared_error: 0.0756 - val_mae: 0.0566\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00961 to 0.00571, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0247 - root_mean_squared_error: 0.1564 - mae: 0.0839 - val_loss: 0.0048 - val_root_mean_squared_error: 0.0694 - val_mae: 0.0519\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00571 to 0.00482, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0230 - root_mean_squared_error: 0.1511 - mae: 0.0775 - val_loss: 0.0059 - val_root_mean_squared_error: 0.0767 - val_mae: 0.0588\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00482\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0186 - root_mean_squared_error: 0.1362 - mae: 0.0730 - val_loss: 0.0087 - val_root_mean_squared_error: 0.0933 - val_mae: 0.0626\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00482\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0215 - root_mean_squared_error: 0.1464 - mae: 0.0729 - val_loss: 0.0060 - val_root_mean_squared_error: 0.0772 - val_mae: 0.0563\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00482\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0163 - root_mean_squared_error: 0.1273 - mae: 0.0681 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0605 - val_mae: 0.0449\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00482 to 0.00366, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0162 - root_mean_squared_error: 0.1268 - mae: 0.0652 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0598 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00366 to 0.00357, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0168 - root_mean_squared_error: 0.1293 - mae: 0.0666 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0698 - val_mae: 0.0497\n",
            "\n",
            "Epoch 00015: val_loss did not improve from 0.00357\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0183 - root_mean_squared_error: 0.1343 - mae: 0.0662 - val_loss: 0.0035 - val_root_mean_squared_error: 0.0588 - val_mae: 0.0430\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00357 to 0.00346, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0184 - root_mean_squared_error: 0.1341 - mae: 0.0666 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0570 - val_mae: 0.0413\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00346 to 0.00325, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0161 - root_mean_squared_error: 0.1265 - mae: 0.0638 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0556 - val_mae: 0.0402\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00325 to 0.00310, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0159 - root_mean_squared_error: 0.1255 - mae: 0.0645 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0556 - val_mae: 0.0399\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00310 to 0.00310, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0156 - root_mean_squared_error: 0.1243 - mae: 0.0629 - val_loss: 0.0060 - val_root_mean_squared_error: 0.0775 - val_mae: 0.0555\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00310\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0135 - root_mean_squared_error: 0.1157 - mae: 0.0636 - val_loss: 0.0043 - val_root_mean_squared_error: 0.0657 - val_mae: 0.0483\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00310\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0139 - root_mean_squared_error: 0.1172 - mae: 0.0609 - val_loss: 0.0060 - val_root_mean_squared_error: 0.0777 - val_mae: 0.0550\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00310\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0084 - root_mean_squared_error: 0.0916 - mae: 0.0531 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0733 - val_mae: 0.0538\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00310\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0134 - root_mean_squared_error: 0.1151 - mae: 0.0607 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0544 - val_mae: 0.0393\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00310 to 0.00296, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 25/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0076 - root_mean_squared_error: 0.0869 - mae: 0.0509 - val_loss: 0.0081 - val_root_mean_squared_error: 0.0899 - val_mae: 0.0554\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00296\n",
            "Epoch 26/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0114 - root_mean_squared_error: 0.1065 - mae: 0.0556 - val_loss: 0.0055 - val_root_mean_squared_error: 0.0745 - val_mae: 0.0495\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00296\n",
            "Epoch 27/50\n",
            "104/104 [==============================] - 4s 37ms/step - loss: 0.0093 - root_mean_squared_error: 0.0962 - mae: 0.0516 - val_loss: 0.0059 - val_root_mean_squared_error: 0.0767 - val_mae: 0.0488\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00296\n",
            "Epoch 28/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0066 - root_mean_squared_error: 0.0809 - mae: 0.0480 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0543 - val_mae: 0.0390\n",
            "\n",
            "Epoch 00028: val_loss improved from 0.00296 to 0.00295, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 29/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0066 - root_mean_squared_error: 0.0812 - mae: 0.0468 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0686 - val_mae: 0.0463\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00295\n",
            "Epoch 30/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0068 - root_mean_squared_error: 0.0824 - mae: 0.0473 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0312\n",
            "\n",
            "Epoch 00030: val_loss improved from 0.00295 to 0.00212, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 31/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0060 - root_mean_squared_error: 0.0773 - mae: 0.0448 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0468 - val_mae: 0.0323\n",
            "\n",
            "Epoch 00031: val_loss did not improve from 0.00212\n",
            "Epoch 32/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0067 - root_mean_squared_error: 0.0816 - mae: 0.0468 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0463 - val_mae: 0.0320\n",
            "\n",
            "Epoch 00032: val_loss did not improve from 0.00212\n",
            "Epoch 33/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0069 - root_mean_squared_error: 0.0823 - mae: 0.0447 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0538 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00033: val_loss did not improve from 0.00212\n",
            "Epoch 34/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0065 - root_mean_squared_error: 0.0803 - mae: 0.0442 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0331\n",
            "\n",
            "Epoch 00034: val_loss did not improve from 0.00212\n",
            "Epoch 35/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0079 - root_mean_squared_error: 0.0878 - mae: 0.0470 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0472 - val_mae: 0.0332\n",
            "\n",
            "Epoch 00035: val_loss did not improve from 0.00212\n",
            "120/120 [==============================] - 1s 6ms/step - loss: 0.0021 - root_mean_squared_error: 0.0461 - mae: 0.0312\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 40%|████      | 4/10 [09:44<13:40, 136.76s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 64, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "64\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 92s 417ms/step - loss: 0.4867 - root_mean_squared_error: 0.6507 - mae: 0.4502 - val_loss: 0.0889 - val_root_mean_squared_error: 0.2982 - val_mae: 0.2820\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.08892, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 87s 419ms/step - loss: 0.0812 - root_mean_squared_error: 0.2844 - mae: 0.1900 - val_loss: 0.2733 - val_root_mean_squared_error: 0.5228 - val_mae: 0.3912\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.08892\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 87s 417ms/step - loss: 0.0441 - root_mean_squared_error: 0.2095 - mae: 0.1443 - val_loss: 0.0367 - val_root_mean_squared_error: 0.1915 - val_mae: 0.1660\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.08892 to 0.03669, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 87s 419ms/step - loss: 0.0276 - root_mean_squared_error: 0.1661 - mae: 0.1136 - val_loss: 0.0298 - val_root_mean_squared_error: 0.1726 - val_mae: 0.1377\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.03669 to 0.02979, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 87s 418ms/step - loss: 0.0232 - root_mean_squared_error: 0.1520 - mae: 0.1031 - val_loss: 0.0119 - val_root_mean_squared_error: 0.1090 - val_mae: 0.0740\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.02979 to 0.01188, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 87s 417ms/step - loss: 0.0195 - root_mean_squared_error: 0.1394 - mae: 0.0944 - val_loss: 0.0079 - val_root_mean_squared_error: 0.0887 - val_mae: 0.0631\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.01188 to 0.00787, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 87s 419ms/step - loss: 0.0178 - root_mean_squared_error: 0.1335 - mae: 0.0891 - val_loss: 0.0098 - val_root_mean_squared_error: 0.0991 - val_mae: 0.0704\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00787\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 85s 411ms/step - loss: 0.0174 - root_mean_squared_error: 0.1321 - mae: 0.0883 - val_loss: 0.0066 - val_root_mean_squared_error: 0.0810 - val_mae: 0.0575\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00787 to 0.00657, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 86s 414ms/step - loss: 0.0170 - root_mean_squared_error: 0.1303 - mae: 0.0861 - val_loss: 0.0081 - val_root_mean_squared_error: 0.0902 - val_mae: 0.0578\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00657\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 86s 414ms/step - loss: 0.0166 - root_mean_squared_error: 0.1286 - mae: 0.0861 - val_loss: 0.0097 - val_root_mean_squared_error: 0.0985 - val_mae: 0.0706\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00657\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 86s 414ms/step - loss: 0.0180 - root_mean_squared_error: 0.1338 - mae: 0.0920 - val_loss: 0.0090 - val_root_mean_squared_error: 0.0946 - val_mae: 0.0748\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00657\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 87s 418ms/step - loss: 0.0135 - root_mean_squared_error: 0.1163 - mae: 0.0802 - val_loss: 0.0087 - val_root_mean_squared_error: 0.0931 - val_mae: 0.0736\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00657\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 86s 414ms/step - loss: 0.0112 - root_mean_squared_error: 0.1056 - mae: 0.0714 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0635 - val_mae: 0.0459\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00657 to 0.00403, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 87s 419ms/step - loss: 0.0098 - root_mean_squared_error: 0.0987 - mae: 0.0658 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0600 - val_mae: 0.0417\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00403 to 0.00360, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 86s 415ms/step - loss: 0.0081 - root_mean_squared_error: 0.0900 - mae: 0.0603 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0612 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00015: val_loss did not improve from 0.00360\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 87s 417ms/step - loss: 0.0075 - root_mean_squared_error: 0.0863 - mae: 0.0576 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0601 - val_mae: 0.0423\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00360\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 87s 420ms/step - loss: 0.0068 - root_mean_squared_error: 0.0825 - mae: 0.0561 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0391\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00360 to 0.00314, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 88s 421ms/step - loss: 0.0062 - root_mean_squared_error: 0.0789 - mae: 0.0529 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0622 - val_mae: 0.0447\n",
            "\n",
            "Epoch 00018: val_loss did not improve from 0.00314\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 87s 417ms/step - loss: 0.0056 - root_mean_squared_error: 0.0748 - mae: 0.0514 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0567 - val_mae: 0.0396\n",
            "\n",
            "Epoch 00019: val_loss did not improve from 0.00314\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 87s 420ms/step - loss: 0.0055 - root_mean_squared_error: 0.0739 - mae: 0.0501 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0548 - val_mae: 0.0382\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00314 to 0.00301, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 87s 417ms/step - loss: 0.0058 - root_mean_squared_error: 0.0762 - mae: 0.0505 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0555 - val_mae: 0.0391\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00301\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 87s 418ms/step - loss: 0.0059 - root_mean_squared_error: 0.0768 - mae: 0.0515 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0534 - val_mae: 0.0356\n",
            "\n",
            "Epoch 00022: val_loss improved from 0.00301 to 0.00286, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 84s 405ms/step - loss: 0.0059 - root_mean_squared_error: 0.0768 - mae: 0.0510 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0539 - val_mae: 0.0370\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00286\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 84s 404ms/step - loss: 0.0055 - root_mean_squared_error: 0.0743 - mae: 0.0504 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0540 - val_mae: 0.0359\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00286\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 84s 404ms/step - loss: 0.0055 - root_mean_squared_error: 0.0739 - mae: 0.0508 - val_loss: 0.0034 - val_root_mean_squared_error: 0.0587 - val_mae: 0.0409\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00286\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 84s 403ms/step - loss: 0.0057 - root_mean_squared_error: 0.0756 - mae: 0.0515 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0575 - val_mae: 0.0383\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00286\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 85s 410ms/step - loss: 0.0050 - root_mean_squared_error: 0.0710 - mae: 0.0489 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0570 - val_mae: 0.0386\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00286\n",
            "120/120 [==============================] - 9s 70ms/step - loss: 0.0029 - root_mean_squared_error: 0.0534 - mae: 0.0356\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 50%|█████     | 5/10 [49:12<1:07:11, 806.27s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 64, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 1.5}\n",
            "64\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 7s 38ms/step - loss: 0.3680 - root_mean_squared_error: 0.5731 - mae: 0.4102 - val_loss: 0.0107 - val_root_mean_squared_error: 0.1033 - val_mae: 0.0876\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01068, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 4s 36ms/step - loss: 0.0451 - root_mean_squared_error: 0.2124 - mae: 0.1490 - val_loss: 0.0104 - val_root_mean_squared_error: 0.1020 - val_mae: 0.0851\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01068 to 0.01041, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0373 - root_mean_squared_error: 0.1930 - mae: 0.1300 - val_loss: 0.0098 - val_root_mean_squared_error: 0.0988 - val_mae: 0.0775\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.01041 to 0.00977, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0319 - root_mean_squared_error: 0.1785 - mae: 0.1141 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0994 - val_mae: 0.0771\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00977\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0237 - root_mean_squared_error: 0.1538 - mae: 0.0968 - val_loss: 0.0052 - val_root_mean_squared_error: 0.0719 - val_mae: 0.0554\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00977 to 0.00516, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0215 - root_mean_squared_error: 0.1465 - mae: 0.0920 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0716 - val_mae: 0.0557\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00516 to 0.00513, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0227 - root_mean_squared_error: 0.1504 - mae: 0.0903 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0725 - val_mae: 0.0547\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00513\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0215 - root_mean_squared_error: 0.1463 - mae: 0.0850 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0664 - val_mae: 0.0502\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00513 to 0.00441, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0161 - root_mean_squared_error: 0.1267 - mae: 0.0742 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0571 - val_mae: 0.0418\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00441 to 0.00327, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0190 - root_mean_squared_error: 0.1374 - mae: 0.0819 - val_loss: 0.0058 - val_root_mean_squared_error: 0.0759 - val_mae: 0.0532\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00327\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0141 - root_mean_squared_error: 0.1187 - mae: 0.0707 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0544 - val_mae: 0.0392\n",
            "\n",
            "Epoch 00011: val_loss improved from 0.00327 to 0.00296, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0132 - root_mean_squared_error: 0.1149 - mae: 0.0694 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0515 - val_mae: 0.0375\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00296 to 0.00266, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0141 - root_mean_squared_error: 0.1186 - mae: 0.0688 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0564 - val_mae: 0.0404\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00266\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0136 - root_mean_squared_error: 0.1166 - mae: 0.0690 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0505 - val_mae: 0.0364\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00266 to 0.00255, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0130 - root_mean_squared_error: 0.1138 - mae: 0.0657 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0510 - val_mae: 0.0366\n",
            "\n",
            "Epoch 00015: val_loss did not improve from 0.00255\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0123 - root_mean_squared_error: 0.1110 - mae: 0.0642 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0508 - val_mae: 0.0361\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00255\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0145 - root_mean_squared_error: 0.1204 - mae: 0.0671 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0499 - val_mae: 0.0354\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00255 to 0.00249, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0123 - root_mean_squared_error: 0.1109 - mae: 0.0637 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0503 - val_mae: 0.0358\n",
            "\n",
            "Epoch 00018: val_loss did not improve from 0.00249\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0120 - root_mean_squared_error: 0.1093 - mae: 0.0636 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0340\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00249 to 0.00238, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0114 - root_mean_squared_error: 0.1064 - mae: 0.0625 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0672 - val_mae: 0.0510\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00238\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0106 - root_mean_squared_error: 0.1030 - mae: 0.0633 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0685 - val_mae: 0.0502\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00238\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0100 - root_mean_squared_error: 0.1001 - mae: 0.0610 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0551 - val_mae: 0.0387\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00238\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0095 - root_mean_squared_error: 0.0972 - mae: 0.0596 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0497 - val_mae: 0.0355\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00238\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0086 - root_mean_squared_error: 0.0925 - mae: 0.0575 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0543 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00238\n",
            "120/120 [==============================] - 1s 5ms/step - loss: 0.0024 - root_mean_squared_error: 0.0487 - mae: 0.0340\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 60%|██████    | 6/10 [50:45<39:29, 592.45s/it]  "
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 64, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 1.5}\n",
            "64\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 7s 38ms/step - loss: 0.3680 - root_mean_squared_error: 0.5731 - mae: 0.4102 - val_loss: 0.0107 - val_root_mean_squared_error: 0.1033 - val_mae: 0.0876\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01068, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 4s 35ms/step - loss: 0.0451 - root_mean_squared_error: 0.2124 - mae: 0.1490 - val_loss: 0.0104 - val_root_mean_squared_error: 0.1020 - val_mae: 0.0851\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01068 to 0.01041, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0373 - root_mean_squared_error: 0.1930 - mae: 0.1300 - val_loss: 0.0098 - val_root_mean_squared_error: 0.0988 - val_mae: 0.0775\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.01041 to 0.00977, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0319 - root_mean_squared_error: 0.1785 - mae: 0.1141 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0994 - val_mae: 0.0771\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00977\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0237 - root_mean_squared_error: 0.1538 - mae: 0.0968 - val_loss: 0.0052 - val_root_mean_squared_error: 0.0719 - val_mae: 0.0554\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00977 to 0.00516, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0215 - root_mean_squared_error: 0.1465 - mae: 0.0920 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0716 - val_mae: 0.0557\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00516 to 0.00513, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0227 - root_mean_squared_error: 0.1504 - mae: 0.0903 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0725 - val_mae: 0.0547\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00513\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0215 - root_mean_squared_error: 0.1463 - mae: 0.0850 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0664 - val_mae: 0.0502\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00513 to 0.00441, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0161 - root_mean_squared_error: 0.1267 - mae: 0.0742 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0571 - val_mae: 0.0418\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00441 to 0.00327, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0190 - root_mean_squared_error: 0.1374 - mae: 0.0819 - val_loss: 0.0058 - val_root_mean_squared_error: 0.0759 - val_mae: 0.0532\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00327\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0141 - root_mean_squared_error: 0.1187 - mae: 0.0707 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0544 - val_mae: 0.0392\n",
            "\n",
            "Epoch 00011: val_loss improved from 0.00327 to 0.00296, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0132 - root_mean_squared_error: 0.1149 - mae: 0.0694 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0515 - val_mae: 0.0375\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00296 to 0.00266, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 3s 34ms/step - loss: 0.0141 - root_mean_squared_error: 0.1186 - mae: 0.0688 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0564 - val_mae: 0.0404\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00266\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0136 - root_mean_squared_error: 0.1166 - mae: 0.0690 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0505 - val_mae: 0.0364\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00266 to 0.00255, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 3s 32ms/step - loss: 0.0130 - root_mean_squared_error: 0.1138 - mae: 0.0657 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0510 - val_mae: 0.0366\n",
            "\n",
            "Epoch 00015: val_loss did not improve from 0.00255\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0123 - root_mean_squared_error: 0.1110 - mae: 0.0642 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0508 - val_mae: 0.0361\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00255\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0145 - root_mean_squared_error: 0.1204 - mae: 0.0671 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0499 - val_mae: 0.0354\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00255 to 0.00249, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0123 - root_mean_squared_error: 0.1109 - mae: 0.0637 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0503 - val_mae: 0.0358\n",
            "\n",
            "Epoch 00018: val_loss did not improve from 0.00249\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0120 - root_mean_squared_error: 0.1093 - mae: 0.0636 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0340\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00249 to 0.00238, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0114 - root_mean_squared_error: 0.1064 - mae: 0.0625 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0672 - val_mae: 0.0510\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00238\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0106 - root_mean_squared_error: 0.1030 - mae: 0.0633 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0685 - val_mae: 0.0502\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00238\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0100 - root_mean_squared_error: 0.1001 - mae: 0.0610 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0551 - val_mae: 0.0387\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00238\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 3s 33ms/step - loss: 0.0095 - root_mean_squared_error: 0.0972 - mae: 0.0596 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0497 - val_mae: 0.0355\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00238\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 4s 34ms/step - loss: 0.0086 - root_mean_squared_error: 0.0925 - mae: 0.0575 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0543 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00238\n",
            "120/120 [==============================] - 1s 5ms/step - loss: 0.0024 - root_mean_squared_error: 0.0487 - mae: 0.0340\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 70%|███████   | 7/10 [52:18<22:07, 442.40s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 13s 42ms/step - loss: 0.2363 - root_mean_squared_error: 0.4626 - mae: 0.3199 - val_loss: 0.0228 - val_root_mean_squared_error: 0.1510 - val_mae: 0.1409\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.02281, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0460 - root_mean_squared_error: 0.2141 - mae: 0.1371 - val_loss: 0.0195 - val_root_mean_squared_error: 0.1397 - val_mae: 0.1212\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.02281 to 0.01951, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0336 - root_mean_squared_error: 0.1833 - mae: 0.1126 - val_loss: 0.0101 - val_root_mean_squared_error: 0.1007 - val_mae: 0.0810\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.01951 to 0.01015, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0258 - root_mean_squared_error: 0.1603 - mae: 0.0992 - val_loss: 0.0112 - val_root_mean_squared_error: 0.1056 - val_mae: 0.0806\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01015\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0341 - root_mean_squared_error: 0.1837 - mae: 0.1029 - val_loss: 0.0078 - val_root_mean_squared_error: 0.0882 - val_mae: 0.0666\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01015 to 0.00777, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0223 - root_mean_squared_error: 0.1493 - mae: 0.0876 - val_loss: 0.0077 - val_root_mean_squared_error: 0.0880 - val_mae: 0.0688\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00777 to 0.00774, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 8s 38ms/step - loss: 0.0280 - root_mean_squared_error: 0.1661 - mae: 0.0928 - val_loss: 0.0061 - val_root_mean_squared_error: 0.0781 - val_mae: 0.0591\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00774 to 0.00609, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0216 - root_mean_squared_error: 0.1463 - mae: 0.0818 - val_loss: 0.0064 - val_root_mean_squared_error: 0.0801 - val_mae: 0.0598\n",
            "\n",
            "Epoch 00008: val_loss did not improve from 0.00609\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0187 - root_mean_squared_error: 0.1361 - mae: 0.0791 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0712 - val_mae: 0.0534\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00609 to 0.00507, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0218 - root_mean_squared_error: 0.1473 - mae: 0.0819 - val_loss: 0.0071 - val_root_mean_squared_error: 0.0844 - val_mae: 0.0647\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00507\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0165 - root_mean_squared_error: 0.1282 - mae: 0.0773 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0715 - val_mae: 0.0540\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00507\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 8s 38ms/step - loss: 0.0151 - root_mean_squared_error: 0.1229 - mae: 0.0705 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0620 - val_mae: 0.0473\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00507 to 0.00385, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0114 - root_mean_squared_error: 0.1067 - mae: 0.0634 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0571 - val_mae: 0.0413\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00385 to 0.00326, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0097 - root_mean_squared_error: 0.0986 - mae: 0.0606 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0598 - val_mae: 0.0429\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00326\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0114 - root_mean_squared_error: 0.1066 - mae: 0.0591 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0333\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00326 to 0.00237, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0094 - root_mean_squared_error: 0.0967 - mae: 0.0558 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0497 - val_mae: 0.0354\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00237\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0067 - root_mean_squared_error: 0.0818 - mae: 0.0511 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0497 - val_mae: 0.0344\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00237\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0070 - root_mean_squared_error: 0.0834 - mae: 0.0503 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0338\n",
            "\n",
            "Epoch 00018: val_loss did not improve from 0.00237\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0058 - root_mean_squared_error: 0.0759 - mae: 0.0477 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0476 - val_mae: 0.0326\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00237 to 0.00226, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0063 - root_mean_squared_error: 0.0792 - mae: 0.0474 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0311\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00226 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0074 - root_mean_squared_error: 0.0860 - mae: 0.0493 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00209\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 8s 38ms/step - loss: 0.0048 - root_mean_squared_error: 0.0692 - mae: 0.0431 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0463 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00209\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 8s 39ms/step - loss: 0.0056 - root_mean_squared_error: 0.0747 - mae: 0.0457 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0300\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00209 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 8s 38ms/step - loss: 0.0064 - root_mean_squared_error: 0.0795 - mae: 0.0452 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0447 - val_mae: 0.0300\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00199\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0063 - root_mean_squared_error: 0.0791 - mae: 0.0491 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0530 - val_mae: 0.0361\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00199\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0047 - root_mean_squared_error: 0.0688 - mae: 0.0450 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0547 - val_mae: 0.0386\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00199\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0047 - root_mean_squared_error: 0.0684 - mae: 0.0441 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00199\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0044 - root_mean_squared_error: 0.0663 - mae: 0.0421 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0463 - val_mae: 0.0318\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00199\n",
            "120/120 [==============================] - 2s 7ms/step - loss: 0.0020 - root_mean_squared_error: 0.0446 - mae: 0.0300\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 80%|████████  | 8/10 [56:16<12:42, 381.05s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 64, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 1.5}\n",
            "64\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 61s 529ms/step - loss: 0.5546 - root_mean_squared_error: 0.6964 - mae: 0.4631 - val_loss: 0.1438 - val_root_mean_squared_error: 0.3793 - val_mae: 0.3667\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.14383, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 54s 515ms/step - loss: 0.0713 - root_mean_squared_error: 0.2666 - mae: 0.1819 - val_loss: 0.0987 - val_root_mean_squared_error: 0.3142 - val_mae: 0.2989\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.14383 to 0.09874, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 54s 522ms/step - loss: 0.0433 - root_mean_squared_error: 0.2079 - mae: 0.1391 - val_loss: 0.0447 - val_root_mean_squared_error: 0.2115 - val_mae: 0.1857\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.09874 to 0.04474, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 54s 517ms/step - loss: 0.0431 - root_mean_squared_error: 0.2074 - mae: 0.1330 - val_loss: 0.0155 - val_root_mean_squared_error: 0.1246 - val_mae: 0.0901\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.04474 to 0.01553, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 54s 516ms/step - loss: 0.0335 - root_mean_squared_error: 0.1830 - mae: 0.1157 - val_loss: 0.0131 - val_root_mean_squared_error: 0.1143 - val_mae: 0.0874\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01553 to 0.01305, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 53s 508ms/step - loss: 0.0294 - root_mean_squared_error: 0.1712 - mae: 0.1100 - val_loss: 0.0133 - val_root_mean_squared_error: 0.1153 - val_mae: 0.0861\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.01305\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 53s 507ms/step - loss: 0.0273 - root_mean_squared_error: 0.1651 - mae: 0.1051 - val_loss: 0.0119 - val_root_mean_squared_error: 0.1093 - val_mae: 0.0820\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.01305 to 0.01194, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 53s 511ms/step - loss: 0.0261 - root_mean_squared_error: 0.1614 - mae: 0.0996 - val_loss: 0.0083 - val_root_mean_squared_error: 0.0911 - val_mae: 0.0676\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.01194 to 0.00831, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 53s 515ms/step - loss: 0.0202 - root_mean_squared_error: 0.1419 - mae: 0.0879 - val_loss: 0.0065 - val_root_mean_squared_error: 0.0807 - val_mae: 0.0606\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00831 to 0.00652, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 54s 518ms/step - loss: 0.0237 - root_mean_squared_error: 0.1537 - mae: 0.0931 - val_loss: 0.0113 - val_root_mean_squared_error: 0.1065 - val_mae: 0.0783\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00652\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 54s 524ms/step - loss: 0.0248 - root_mean_squared_error: 0.1573 - mae: 0.0900 - val_loss: 0.0064 - val_root_mean_squared_error: 0.0802 - val_mae: 0.0583\n",
            "\n",
            "Epoch 00011: val_loss improved from 0.00652 to 0.00644, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 54s 519ms/step - loss: 0.0208 - root_mean_squared_error: 0.1442 - mae: 0.0831 - val_loss: 0.0056 - val_root_mean_squared_error: 0.0748 - val_mae: 0.0556\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00644 to 0.00559, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 54s 516ms/step - loss: 0.0167 - root_mean_squared_error: 0.1291 - mae: 0.0762 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0731 - val_mae: 0.0546\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00559 to 0.00535, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 54s 517ms/step - loss: 0.0154 - root_mean_squared_error: 0.1239 - mae: 0.0719 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0633 - val_mae: 0.0476\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00535 to 0.00401, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 54s 516ms/step - loss: 0.0149 - root_mean_squared_error: 0.1218 - mae: 0.0721 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0621 - val_mae: 0.0451\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00401 to 0.00385, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 53s 513ms/step - loss: 0.0157 - root_mean_squared_error: 0.1252 - mae: 0.0711 - val_loss: 0.0035 - val_root_mean_squared_error: 0.0592 - val_mae: 0.0432\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00385 to 0.00350, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 54s 516ms/step - loss: 0.0147 - root_mean_squared_error: 0.1209 - mae: 0.0704 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0635 - val_mae: 0.0459\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00350\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 53s 509ms/step - loss: 0.0147 - root_mean_squared_error: 0.1209 - mae: 0.0688 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0627 - val_mae: 0.0446\n",
            "\n",
            "Epoch 00018: val_loss did not improve from 0.00350\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 53s 512ms/step - loss: 0.0139 - root_mean_squared_error: 0.1174 - mae: 0.0686 - val_loss: 0.0034 - val_root_mean_squared_error: 0.0586 - val_mae: 0.0424\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00350 to 0.00343, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 54s 516ms/step - loss: 0.0142 - root_mean_squared_error: 0.1187 - mae: 0.0687 - val_loss: 0.0102 - val_root_mean_squared_error: 0.1008 - val_mae: 0.0760\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00343\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 53s 512ms/step - loss: 0.0156 - root_mean_squared_error: 0.1248 - mae: 0.0739 - val_loss: 0.0043 - val_root_mean_squared_error: 0.0659 - val_mae: 0.0487\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00343\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 54s 518ms/step - loss: 0.0124 - root_mean_squared_error: 0.1112 - mae: 0.0666 - val_loss: 0.0076 - val_root_mean_squared_error: 0.0874 - val_mae: 0.0617\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00343\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 54s 520ms/step - loss: 0.0141 - root_mean_squared_error: 0.1185 - mae: 0.0702 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0735 - val_mae: 0.0536\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00343\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 54s 516ms/step - loss: 0.0408 - root_mean_squared_error: 0.2006 - mae: 0.1299 - val_loss: 0.0266 - val_root_mean_squared_error: 0.1631 - val_mae: 0.0999\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00343\n",
            "120/120 [==============================] - 9s 68ms/step - loss: 0.0034 - root_mean_squared_error: 0.0586 - mae: 0.0424\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 90%|█████████ | 9/10 [1:18:29<11:06, 666.75s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 17s 54ms/step - loss: 0.1959 - root_mean_squared_error: 0.4223 - mae: 0.2786 - val_loss: 0.0183 - val_root_mean_squared_error: 0.1354 - val_mae: 0.1259\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01833, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0366 - root_mean_squared_error: 0.1908 - mae: 0.1231 - val_loss: 0.0108 - val_root_mean_squared_error: 0.1038 - val_mae: 0.0879\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01833 to 0.01078, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0366 - root_mean_squared_error: 0.1910 - mae: 0.1135 - val_loss: 0.0122 - val_root_mean_squared_error: 0.1106 - val_mae: 0.0827\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01078\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0270 - root_mean_squared_error: 0.1639 - mae: 0.0973 - val_loss: 0.0107 - val_root_mean_squared_error: 0.1035 - val_mae: 0.0798\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01078 to 0.01072, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0263 - root_mean_squared_error: 0.1618 - mae: 0.0972 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0994 - val_mae: 0.0760\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01072 to 0.00988, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0233 - root_mean_squared_error: 0.1524 - mae: 0.0924 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0967 - val_mae: 0.0755\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00988 to 0.00936, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0220 - root_mean_squared_error: 0.1478 - mae: 0.0897 - val_loss: 0.0083 - val_root_mean_squared_error: 0.0914 - val_mae: 0.0698\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00936 to 0.00835, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0175 - root_mean_squared_error: 0.1320 - mae: 0.0846 - val_loss: 0.0081 - val_root_mean_squared_error: 0.0901 - val_mae: 0.0690\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00835 to 0.00811, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0198 - root_mean_squared_error: 0.1406 - mae: 0.0857 - val_loss: 0.0082 - val_root_mean_squared_error: 0.0905 - val_mae: 0.0697\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00811\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0180 - root_mean_squared_error: 0.1340 - mae: 0.0872 - val_loss: 0.1135 - val_root_mean_squared_error: 0.3369 - val_mae: 0.2130\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00811\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0195 - root_mean_squared_error: 0.1395 - mae: 0.0892 - val_loss: 0.0095 - val_root_mean_squared_error: 0.0975 - val_mae: 0.0768\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00811\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0152 - root_mean_squared_error: 0.1233 - mae: 0.0812 - val_loss: 0.0102 - val_root_mean_squared_error: 0.1012 - val_mae: 0.0770\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00811\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0160 - root_mean_squared_error: 0.1261 - mae: 0.0773 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0717 - val_mae: 0.0552\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00811 to 0.00514, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0124 - root_mean_squared_error: 0.1112 - mae: 0.0708 - val_loss: 0.0062 - val_root_mean_squared_error: 0.0790 - val_mae: 0.0607\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00514\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0097 - root_mean_squared_error: 0.0985 - mae: 0.0633 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0575 - val_mae: 0.0427\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00514 to 0.00330, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 11s 51ms/step - loss: 0.0090 - root_mean_squared_error: 0.0944 - mae: 0.0582 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0548 - val_mae: 0.0409\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00330 to 0.00300, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0087 - root_mean_squared_error: 0.0931 - mae: 0.0576 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0568 - val_mae: 0.0431\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00300\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0080 - root_mean_squared_error: 0.0890 - mae: 0.0543 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0519 - val_mae: 0.0374\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00300 to 0.00270, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0066 - root_mean_squared_error: 0.0810 - mae: 0.0521 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0475 - val_mae: 0.0332\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00270 to 0.00226, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0056 - root_mean_squared_error: 0.0749 - mae: 0.0485 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0499 - val_mae: 0.0352\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00226\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0068 - root_mean_squared_error: 0.0825 - mae: 0.0506 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00226 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0060 - root_mean_squared_error: 0.0772 - mae: 0.0488 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0470 - val_mae: 0.0325\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00209\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0053 - root_mean_squared_error: 0.0723 - mae: 0.0466 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00209\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0056 - root_mean_squared_error: 0.0750 - mae: 0.0471 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0321\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00209\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 10s 49ms/step - loss: 0.0057 - root_mean_squared_error: 0.0752 - mae: 0.0489 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0530 - val_mae: 0.0366\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00209\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0052 - root_mean_squared_error: 0.0724 - mae: 0.0481 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0483 - val_mae: 0.0336\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00209\n",
            "120/120 [==============================] - 2s 10ms/step - loss: 0.0021 - root_mean_squared_error: 0.0457 - mae: 0.0316\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 10/10 [1:23:25<00:00, 500.56s/it]\n",
            "  0%|          | 0/6 [00:00<?, ?it/s]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "[{'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 64, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 9, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 0.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}]\n",
            "Iteration:  2\n",
            "{'n_neurons': 64, 'n_layers': 4, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "64\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 87s 394ms/step - loss: 0.4867 - root_mean_squared_error: 0.6507 - mae: 0.4502 - val_loss: 0.0889 - val_root_mean_squared_error: 0.2982 - val_mae: 0.2820\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.08892, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 82s 395ms/step - loss: 0.0812 - root_mean_squared_error: 0.2844 - mae: 0.1900 - val_loss: 0.2733 - val_root_mean_squared_error: 0.5228 - val_mae: 0.3912\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.08892\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 82s 394ms/step - loss: 0.0441 - root_mean_squared_error: 0.2095 - mae: 0.1443 - val_loss: 0.0367 - val_root_mean_squared_error: 0.1915 - val_mae: 0.1660\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.08892 to 0.03669, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 82s 394ms/step - loss: 0.0276 - root_mean_squared_error: 0.1661 - mae: 0.1136 - val_loss: 0.0298 - val_root_mean_squared_error: 0.1726 - val_mae: 0.1377\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.03669 to 0.02979, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 82s 393ms/step - loss: 0.0232 - root_mean_squared_error: 0.1520 - mae: 0.1031 - val_loss: 0.0119 - val_root_mean_squared_error: 0.1090 - val_mae: 0.0740\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.02979 to 0.01188, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 81s 388ms/step - loss: 0.0195 - root_mean_squared_error: 0.1394 - mae: 0.0944 - val_loss: 0.0079 - val_root_mean_squared_error: 0.0887 - val_mae: 0.0631\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.01188 to 0.00787, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 83s 397ms/step - loss: 0.0178 - root_mean_squared_error: 0.1335 - mae: 0.0891 - val_loss: 0.0098 - val_root_mean_squared_error: 0.0991 - val_mae: 0.0704\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00787\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 85s 408ms/step - loss: 0.0174 - root_mean_squared_error: 0.1321 - mae: 0.0883 - val_loss: 0.0066 - val_root_mean_squared_error: 0.0810 - val_mae: 0.0575\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00787 to 0.00657, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 89s 427ms/step - loss: 0.0170 - root_mean_squared_error: 0.1303 - mae: 0.0861 - val_loss: 0.0081 - val_root_mean_squared_error: 0.0902 - val_mae: 0.0578\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00657\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 84s 403ms/step - loss: 0.0166 - root_mean_squared_error: 0.1286 - mae: 0.0861 - val_loss: 0.0097 - val_root_mean_squared_error: 0.0985 - val_mae: 0.0706\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00657\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 83s 400ms/step - loss: 0.0180 - root_mean_squared_error: 0.1338 - mae: 0.0920 - val_loss: 0.0090 - val_root_mean_squared_error: 0.0946 - val_mae: 0.0748\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00657\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 82s 393ms/step - loss: 0.0135 - root_mean_squared_error: 0.1163 - mae: 0.0802 - val_loss: 0.0087 - val_root_mean_squared_error: 0.0931 - val_mae: 0.0736\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00657\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 82s 394ms/step - loss: 0.0112 - root_mean_squared_error: 0.1056 - mae: 0.0714 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0635 - val_mae: 0.0459\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00657 to 0.00403, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 82s 392ms/step - loss: 0.0098 - root_mean_squared_error: 0.0987 - mae: 0.0658 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0600 - val_mae: 0.0417\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00403 to 0.00360, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 81s 389ms/step - loss: 0.0081 - root_mean_squared_error: 0.0900 - mae: 0.0603 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0612 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00015: val_loss did not improve from 0.00360\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 81s 390ms/step - loss: 0.0075 - root_mean_squared_error: 0.0863 - mae: 0.0576 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0601 - val_mae: 0.0423\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00360\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 80s 387ms/step - loss: 0.0068 - root_mean_squared_error: 0.0825 - mae: 0.0561 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0391\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00360 to 0.00314, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 81s 389ms/step - loss: 0.0062 - root_mean_squared_error: 0.0789 - mae: 0.0529 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0622 - val_mae: 0.0447\n",
            "\n",
            "Epoch 00018: val_loss did not improve from 0.00314\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 82s 394ms/step - loss: 0.0056 - root_mean_squared_error: 0.0748 - mae: 0.0514 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0567 - val_mae: 0.0396\n",
            "\n",
            "Epoch 00019: val_loss did not improve from 0.00314\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 81s 390ms/step - loss: 0.0055 - root_mean_squared_error: 0.0739 - mae: 0.0501 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0548 - val_mae: 0.0382\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00314 to 0.00301, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 81s 392ms/step - loss: 0.0058 - root_mean_squared_error: 0.0762 - mae: 0.0505 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0555 - val_mae: 0.0391\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00301\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 81s 390ms/step - loss: 0.0059 - root_mean_squared_error: 0.0768 - mae: 0.0515 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0534 - val_mae: 0.0356\n",
            "\n",
            "Epoch 00022: val_loss improved from 0.00301 to 0.00286, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 80s 387ms/step - loss: 0.0059 - root_mean_squared_error: 0.0768 - mae: 0.0510 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0539 - val_mae: 0.0370\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00286\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 80s 385ms/step - loss: 0.0055 - root_mean_squared_error: 0.0743 - mae: 0.0504 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0540 - val_mae: 0.0359\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00286\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 81s 390ms/step - loss: 0.0055 - root_mean_squared_error: 0.0739 - mae: 0.0508 - val_loss: 0.0034 - val_root_mean_squared_error: 0.0587 - val_mae: 0.0409\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00286\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 82s 394ms/step - loss: 0.0057 - root_mean_squared_error: 0.0756 - mae: 0.0515 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0575 - val_mae: 0.0383\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00286\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 83s 397ms/step - loss: 0.0050 - root_mean_squared_error: 0.0710 - mae: 0.0489 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0570 - val_mae: 0.0386\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00286\n",
            "120/120 [==============================] - 9s 68ms/step - loss: 0.0029 - root_mean_squared_error: 0.0534 - mae: 0.0356\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 17%|█▋        | 1/6 [37:33<3:07:48, 2253.61s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 9, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "13/13 [==============================] - 8s 242ms/step - loss: 0.7107 - root_mean_squared_error: 0.8167 - mae: 0.5652 - val_loss: 0.0106 - val_root_mean_squared_error: 0.1031 - val_mae: 0.0655\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01063, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101512.hdf5\n",
            "Epoch 2/50\n",
            "13/13 [==============================] - 2s 179ms/step - loss: 0.0822 - root_mean_squared_error: 0.2864 - mae: 0.1992 - val_loss: 0.0103 - val_root_mean_squared_error: 0.1014 - val_mae: 0.0840\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01063 to 0.01028, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101512.hdf5\n",
            "Epoch 3/50\n",
            "13/13 [==============================] - 2s 179ms/step - loss: 0.0530 - root_mean_squared_error: 0.2301 - mae: 0.1539 - val_loss: 0.0125 - val_root_mean_squared_error: 0.1118 - val_mae: 0.0996\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01028\n",
            "Epoch 4/50\n",
            "13/13 [==============================] - 2s 178ms/step - loss: 0.0449 - root_mean_squared_error: 0.2119 - mae: 0.1337 - val_loss: 0.0130 - val_root_mean_squared_error: 0.1139 - val_mae: 0.1022\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01028\n",
            "Epoch 5/50\n",
            "13/13 [==============================] - 2s 191ms/step - loss: 0.0367 - root_mean_squared_error: 0.1915 - mae: 0.1178 - val_loss: 0.0134 - val_root_mean_squared_error: 0.1158 - val_mae: 0.1046\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.01028\n",
            "Epoch 6/50\n",
            "13/13 [==============================] - 2s 182ms/step - loss: 0.0402 - root_mean_squared_error: 0.2005 - mae: 0.1171 - val_loss: 0.0149 - val_root_mean_squared_error: 0.1222 - val_mae: 0.1120\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.01028\n",
            "Epoch 7/50\n",
            "13/13 [==============================] - 2s 180ms/step - loss: 0.0375 - root_mean_squared_error: 0.1934 - mae: 0.1135 - val_loss: 0.0169 - val_root_mean_squared_error: 0.1300 - val_mae: 0.1203\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.01028\n",
            "120/120 [==============================] - 1s 7ms/step - loss: 0.0103 - root_mean_squared_error: 0.1014 - mae: 0.0840\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 33%|███▎      | 2/6 [38:02<1:45:44, 1586.15s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 10s 54ms/step - loss: 0.2921 - root_mean_squared_error: 0.5076 - mae: 0.3355 - val_loss: 0.0186 - val_root_mean_squared_error: 0.1365 - val_mae: 0.1270\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01864, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0546 - root_mean_squared_error: 0.2332 - mae: 0.1444 - val_loss: 0.0219 - val_root_mean_squared_error: 0.1478 - val_mae: 0.1379\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01864\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0382 - root_mean_squared_error: 0.1949 - mae: 0.1193 - val_loss: 0.0294 - val_root_mean_squared_error: 0.1714 - val_mae: 0.1595\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01864\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0401 - root_mean_squared_error: 0.1989 - mae: 0.1131 - val_loss: 0.0233 - val_root_mean_squared_error: 0.1527 - val_mae: 0.1372\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01864\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0353 - root_mean_squared_error: 0.1871 - mae: 0.1058 - val_loss: 0.0143 - val_root_mean_squared_error: 0.1194 - val_mae: 0.1002\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01864 to 0.01427, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0216 - root_mean_squared_error: 0.1469 - mae: 0.0904 - val_loss: 0.0089 - val_root_mean_squared_error: 0.0946 - val_mae: 0.0757\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.01427 to 0.00895, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0249 - root_mean_squared_error: 0.1575 - mae: 0.0894 - val_loss: 0.0073 - val_root_mean_squared_error: 0.0852 - val_mae: 0.0661\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00895 to 0.00725, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0249 - root_mean_squared_error: 0.1577 - mae: 0.0873 - val_loss: 0.0071 - val_root_mean_squared_error: 0.0845 - val_mae: 0.0663\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00725 to 0.00714, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0210 - root_mean_squared_error: 0.1448 - mae: 0.0824 - val_loss: 0.0065 - val_root_mean_squared_error: 0.0806 - val_mae: 0.0640\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00714 to 0.00649, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0223 - root_mean_squared_error: 0.1482 - mae: 0.0813 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0738 - val_mae: 0.0565\n",
            "\n",
            "Epoch 00010: val_loss improved from 0.00649 to 0.00545, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0186 - root_mean_squared_error: 0.1359 - mae: 0.0778 - val_loss: 0.0046 - val_root_mean_squared_error: 0.0681 - val_mae: 0.0509\n",
            "\n",
            "Epoch 00011: val_loss improved from 0.00545 to 0.00464, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0164 - root_mean_squared_error: 0.1275 - mae: 0.0714 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0685 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00464\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0160 - root_mean_squared_error: 0.1263 - mae: 0.0718 - val_loss: 0.0042 - val_root_mean_squared_error: 0.0650 - val_mae: 0.0491\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00464 to 0.00422, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0159 - root_mean_squared_error: 0.1257 - mae: 0.0705 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0620 - val_mae: 0.0458\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00422 to 0.00384, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0158 - root_mean_squared_error: 0.1256 - mae: 0.0700 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0608 - val_mae: 0.0456\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00384 to 0.00369, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0211 - root_mean_squared_error: 0.1446 - mae: 0.0749 - val_loss: 0.0035 - val_root_mean_squared_error: 0.0593 - val_mae: 0.0437\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00369 to 0.00351, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0124 - root_mean_squared_error: 0.1110 - mae: 0.0637 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0577 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00351 to 0.00333, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0152 - root_mean_squared_error: 0.1225 - mae: 0.0674 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0573 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00333 to 0.00328, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0143 - root_mean_squared_error: 0.1196 - mae: 0.0647 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0564 - val_mae: 0.0412\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00328 to 0.00318, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0183 - root_mean_squared_error: 0.1347 - mae: 0.0695 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0660 - val_mae: 0.0485\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00318\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0136 - root_mean_squared_error: 0.1163 - mae: 0.0662 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0596 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00318\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0098 - root_mean_squared_error: 0.0988 - mae: 0.0582 - val_loss: 0.0041 - val_root_mean_squared_error: 0.0641 - val_mae: 0.0472\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00318\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0100 - root_mean_squared_error: 0.1000 - mae: 0.0570 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0535 - val_mae: 0.0375\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00318 to 0.00286, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0105 - root_mean_squared_error: 0.1017 - mae: 0.0545 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0523 - val_mae: 0.0378\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00286 to 0.00273, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 25/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0089 - root_mean_squared_error: 0.0939 - mae: 0.0530 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0500 - val_mae: 0.0356\n",
            "\n",
            "Epoch 00025: val_loss improved from 0.00273 to 0.00250, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 26/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0081 - root_mean_squared_error: 0.0900 - mae: 0.0522 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0408\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00250\n",
            "Epoch 27/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0070 - root_mean_squared_error: 0.0834 - mae: 0.0490 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0561 - val_mae: 0.0408\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00250\n",
            "Epoch 28/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0070 - root_mean_squared_error: 0.0837 - mae: 0.0478 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0466 - val_mae: 0.0330\n",
            "\n",
            "Epoch 00028: val_loss improved from 0.00250 to 0.00217, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 29/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0065 - root_mean_squared_error: 0.0801 - mae: 0.0460 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0331\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00217\n",
            "Epoch 30/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0066 - root_mean_squared_error: 0.0810 - mae: 0.0455 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0460 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00030: val_loss improved from 0.00217 to 0.00211, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 31/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0062 - root_mean_squared_error: 0.0784 - mae: 0.0454 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0451 - val_mae: 0.0305\n",
            "\n",
            "Epoch 00031: val_loss improved from 0.00211 to 0.00204, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 32/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0049 - root_mean_squared_error: 0.0702 - mae: 0.0432 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0454 - val_mae: 0.0312\n",
            "\n",
            "Epoch 00032: val_loss did not improve from 0.00204\n",
            "Epoch 33/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0049 - root_mean_squared_error: 0.0698 - mae: 0.0414 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0453 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00033: val_loss did not improve from 0.00204\n",
            "Epoch 34/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0071 - root_mean_squared_error: 0.0840 - mae: 0.0451 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0304\n",
            "\n",
            "Epoch 00034: val_loss improved from 0.00204 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 35/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0050 - root_mean_squared_error: 0.0706 - mae: 0.0419 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0452 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00035: val_loss did not improve from 0.00199\n",
            "Epoch 36/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0054 - root_mean_squared_error: 0.0734 - mae: 0.0422 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0438 - val_mae: 0.0301\n",
            "\n",
            "Epoch 00036: val_loss improved from 0.00199 to 0.00192, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 37/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0052 - root_mean_squared_error: 0.0717 - mae: 0.0414 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0445 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00037: val_loss did not improve from 0.00192\n",
            "Epoch 38/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0050 - root_mean_squared_error: 0.0706 - mae: 0.0414 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0442 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00038: val_loss did not improve from 0.00192\n",
            "Epoch 39/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0048 - root_mean_squared_error: 0.0694 - mae: 0.0407 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00039: val_loss improved from 0.00192 to 0.00187, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 40/50\n",
            "104/104 [==============================] - 5s 48ms/step - loss: 0.0040 - root_mean_squared_error: 0.0635 - mae: 0.0390 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0304\n",
            "\n",
            "Epoch 00040: val_loss did not improve from 0.00187\n",
            "Epoch 41/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0046 - root_mean_squared_error: 0.0674 - mae: 0.0402 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0434 - val_mae: 0.0293\n",
            "\n",
            "Epoch 00041: val_loss did not improve from 0.00187\n",
            "Epoch 42/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0045 - root_mean_squared_error: 0.0669 - mae: 0.0392 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0290\n",
            "\n",
            "Epoch 00042: val_loss improved from 0.00187 to 0.00187, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 43/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0043 - root_mean_squared_error: 0.0658 - mae: 0.0387 - val_loss: 0.0018 - val_root_mean_squared_error: 0.0428 - val_mae: 0.0286\n",
            "\n",
            "Epoch 00043: val_loss improved from 0.00187 to 0.00183, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 44/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0045 - root_mean_squared_error: 0.0669 - mae: 0.0390 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0290\n",
            "\n",
            "Epoch 00044: val_loss did not improve from 0.00183\n",
            "Epoch 45/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0041 - root_mean_squared_error: 0.0642 - mae: 0.0388 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0290\n",
            "\n",
            "Epoch 00045: val_loss did not improve from 0.00183\n",
            "Epoch 46/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0039 - root_mean_squared_error: 0.0625 - mae: 0.0381 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00046: val_loss did not improve from 0.00183\n",
            "Epoch 47/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0042 - root_mean_squared_error: 0.0651 - mae: 0.0393 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00047: val_loss did not improve from 0.00183\n",
            "Epoch 48/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0039 - root_mean_squared_error: 0.0622 - mae: 0.0384 - val_loss: 0.0018 - val_root_mean_squared_error: 0.0428 - val_mae: 0.0288\n",
            "\n",
            "Epoch 00048: val_loss did not improve from 0.00183\n",
            "120/120 [==============================] - 2s 7ms/step - loss: 0.0018 - root_mean_squared_error: 0.0428 - mae: 0.0286\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 50%|█████     | 3/6 [42:05<59:09, 1183.19s/it]  "
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 0.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "105/105 [==============================] - 7s 22ms/step - loss: 0.2840 - root_mean_squared_error: 0.5005 - mae: 0.3354 - val_loss: 0.0134 - val_root_mean_squared_error: 0.1160 - val_mae: 0.1048\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01345, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0425 - root_mean_squared_error: 0.2058 - mae: 0.1280 - val_loss: 0.0199 - val_root_mean_squared_error: 0.1409 - val_mae: 0.1313\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01345\n",
            "Epoch 3/50\n",
            "105/105 [==============================] - 2s 15ms/step - loss: 0.0328 - root_mean_squared_error: 0.1806 - mae: 0.1118 - val_loss: 0.0247 - val_root_mean_squared_error: 0.1571 - val_mae: 0.1465\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01345\n",
            "Epoch 4/50\n",
            "105/105 [==============================] - 2s 15ms/step - loss: 0.0268 - root_mean_squared_error: 0.1629 - mae: 0.0936 - val_loss: 0.0222 - val_root_mean_squared_error: 0.1489 - val_mae: 0.1374\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01345\n",
            "Epoch 5/50\n",
            "105/105 [==============================] - 2s 17ms/step - loss: 0.0181 - root_mean_squared_error: 0.1340 - mae: 0.0823 - val_loss: 0.0146 - val_root_mean_squared_error: 0.1210 - val_mae: 0.1094\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.01345\n",
            "Epoch 6/50\n",
            "105/105 [==============================] - 2s 15ms/step - loss: 0.0254 - root_mean_squared_error: 0.1587 - mae: 0.0859 - val_loss: 0.0079 - val_root_mean_squared_error: 0.0888 - val_mae: 0.0743\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.01345 to 0.00789, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 7/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0198 - root_mean_squared_error: 0.1398 - mae: 0.0746 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0701 - val_mae: 0.0528\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00789 to 0.00492, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 8/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0264 - root_mean_squared_error: 0.1618 - mae: 0.0780 - val_loss: 0.0072 - val_root_mean_squared_error: 0.0850 - val_mae: 0.0609\n",
            "\n",
            "Epoch 00008: val_loss did not improve from 0.00492\n",
            "Epoch 9/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0167 - root_mean_squared_error: 0.1288 - mae: 0.0680 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0717 - val_mae: 0.0511\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00492\n",
            "Epoch 10/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0210 - root_mean_squared_error: 0.1442 - mae: 0.0689 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0615 - val_mae: 0.0454\n",
            "\n",
            "Epoch 00010: val_loss improved from 0.00492 to 0.00378, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 11/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0174 - root_mean_squared_error: 0.1310 - mae: 0.0664 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0627 - val_mae: 0.0452\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00378\n",
            "Epoch 12/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0251 - root_mean_squared_error: 0.1577 - mae: 0.0696 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0623 - val_mae: 0.0455\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00378\n",
            "Epoch 13/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0223 - root_mean_squared_error: 0.1486 - mae: 0.0641 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0544 - val_mae: 0.0388\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00378 to 0.00296, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 14/50\n",
            "105/105 [==============================] - 2s 15ms/step - loss: 0.0187 - root_mean_squared_error: 0.1359 - mae: 0.0644 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0603 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00296\n",
            "Epoch 15/50\n",
            "105/105 [==============================] - 2s 17ms/step - loss: 0.0115 - root_mean_squared_error: 0.1069 - mae: 0.0575 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0511 - val_mae: 0.0354\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00296 to 0.00261, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 16/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0121 - root_mean_squared_error: 0.1098 - mae: 0.0556 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0499 - val_mae: 0.0351\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00261 to 0.00249, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 17/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0186 - root_mean_squared_error: 0.1354 - mae: 0.0598 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0505 - val_mae: 0.0357\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00249\n",
            "Epoch 18/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0124 - root_mean_squared_error: 0.1105 - mae: 0.0535 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0496 - val_mae: 0.0345\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00249 to 0.00246, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 19/50\n",
            "105/105 [==============================] - 2s 15ms/step - loss: 0.0148 - root_mean_squared_error: 0.1215 - mae: 0.0575 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0497 - val_mae: 0.0350\n",
            "\n",
            "Epoch 00019: val_loss did not improve from 0.00246\n",
            "Epoch 20/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0137 - root_mean_squared_error: 0.1166 - mae: 0.0589 - val_loss: 0.0076 - val_root_mean_squared_error: 0.0871 - val_mae: 0.0611\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00246\n",
            "Epoch 21/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0177 - root_mean_squared_error: 0.1318 - mae: 0.0596 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0618 - val_mae: 0.0452\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00246\n",
            "Epoch 22/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0091 - root_mean_squared_error: 0.0951 - mae: 0.0521 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0572 - val_mae: 0.0410\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00246\n",
            "Epoch 23/50\n",
            "105/105 [==============================] - 2s 16ms/step - loss: 0.0084 - root_mean_squared_error: 0.0914 - mae: 0.0510 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0578 - val_mae: 0.0429\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00246\n",
            "120/120 [==============================] - 1s 3ms/step - loss: 0.0025 - root_mean_squared_error: 0.0496 - mae: 0.0345\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 67%|██████▋   | 4/6 [42:52<28:04, 842.25s/it] "
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 11s 30ms/step - loss: 0.2500 - root_mean_squared_error: 0.4652 - mae: 0.3127 - val_loss: 0.0352 - val_root_mean_squared_error: 0.1877 - val_mae: 0.1753\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.03521, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0461 - root_mean_squared_error: 0.2145 - mae: 0.1330 - val_loss: 0.0235 - val_root_mean_squared_error: 0.1534 - val_mae: 0.1392\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.03521 to 0.02354, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0376 - root_mean_squared_error: 0.1934 - mae: 0.1146 - val_loss: 0.0111 - val_root_mean_squared_error: 0.1055 - val_mae: 0.0847\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.02354 to 0.01114, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0296 - root_mean_squared_error: 0.1714 - mae: 0.1008 - val_loss: 0.0109 - val_root_mean_squared_error: 0.1045 - val_mae: 0.0814\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01114 to 0.01093, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0269 - root_mean_squared_error: 0.1638 - mae: 0.0912 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0817 - val_mae: 0.0631\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01093 to 0.00667, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0220 - root_mean_squared_error: 0.1479 - mae: 0.0873 - val_loss: 0.0068 - val_root_mean_squared_error: 0.0827 - val_mae: 0.0613\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00667\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0244 - root_mean_squared_error: 0.1558 - mae: 0.0878 - val_loss: 0.0057 - val_root_mean_squared_error: 0.0756 - val_mae: 0.0565\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00667 to 0.00571, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0198 - root_mean_squared_error: 0.1403 - mae: 0.0816 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0703 - val_mae: 0.0523\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00571 to 0.00494, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0220 - root_mean_squared_error: 0.1481 - mae: 0.0818 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0699 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00494 to 0.00489, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0194 - root_mean_squared_error: 0.1390 - mae: 0.0797 - val_loss: 0.0056 - val_root_mean_squared_error: 0.0750 - val_mae: 0.0556\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00489\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0203 - root_mean_squared_error: 0.1421 - mae: 0.0810 - val_loss: 0.0059 - val_root_mean_squared_error: 0.0766 - val_mae: 0.0622\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00489\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0125 - root_mean_squared_error: 0.1117 - mae: 0.0688 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0660 - val_mae: 0.0497\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00489 to 0.00436, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0147 - root_mean_squared_error: 0.1208 - mae: 0.0707 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0411\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00436 to 0.00313, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0105 - root_mean_squared_error: 0.1023 - mae: 0.0608 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0599 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00313\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0101 - root_mean_squared_error: 0.1005 - mae: 0.0593 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0519 - val_mae: 0.0369\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00313 to 0.00269, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0085 - root_mean_squared_error: 0.0918 - mae: 0.0543 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0522 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00269\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0089 - root_mean_squared_error: 0.0944 - mae: 0.0572 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0504 - val_mae: 0.0360\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00269 to 0.00254, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0079 - root_mean_squared_error: 0.0888 - mae: 0.0535 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0491 - val_mae: 0.0348\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00254 to 0.00241, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0066 - root_mean_squared_error: 0.0811 - mae: 0.0519 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0482 - val_mae: 0.0337\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00241 to 0.00232, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0065 - root_mean_squared_error: 0.0805 - mae: 0.0484 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0327\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00232 to 0.00225, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0067 - root_mean_squared_error: 0.0818 - mae: 0.0497 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00225 to 0.00211, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0076 - root_mean_squared_error: 0.0868 - mae: 0.0505 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00211\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0063 - root_mean_squared_error: 0.0791 - mae: 0.0477 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00211 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0485 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0311\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00209 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0066 - root_mean_squared_error: 0.0812 - mae: 0.0487 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0465 - val_mae: 0.0313\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00209\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0499 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0493 - val_mae: 0.0347\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00209\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0055 - root_mean_squared_error: 0.0737 - mae: 0.0458 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0334\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00209\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0044 - root_mean_squared_error: 0.0664 - mae: 0.0440 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0503 - val_mae: 0.0343\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00209\n",
            "Epoch 29/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0041 - root_mean_squared_error: 0.0636 - mae: 0.0414 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0477 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00209\n",
            "120/120 [==============================] - 1s 6ms/step - loss: 0.0021 - root_mean_squared_error: 0.0457 - mae: 0.0311\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 83%|████████▎ | 5/6 [45:55<10:44, 644.47s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 7s 20ms/step - loss: 0.3483 - root_mean_squared_error: 0.5415 - mae: 0.3699 - val_loss: 0.0134 - val_root_mean_squared_error: 0.1156 - val_mae: 0.0747\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01335, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 3s 16ms/step - loss: 0.0395 - root_mean_squared_error: 0.1987 - mae: 0.1352 - val_loss: 0.0214 - val_root_mean_squared_error: 0.1462 - val_mae: 0.1116\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01335\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0272 - root_mean_squared_error: 0.1649 - mae: 0.1076 - val_loss: 0.0122 - val_root_mean_squared_error: 0.1106 - val_mae: 0.0857\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.01335 to 0.01224, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 3s 16ms/step - loss: 0.0174 - root_mean_squared_error: 0.1317 - mae: 0.0868 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0733 - val_mae: 0.0542\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01224 to 0.00537, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0179 - root_mean_squared_error: 0.1335 - mae: 0.0824 - val_loss: 0.0042 - val_root_mean_squared_error: 0.0651 - val_mae: 0.0468\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00537 to 0.00423, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0144 - root_mean_squared_error: 0.1200 - mae: 0.0747 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0663 - val_mae: 0.0493\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00423\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0124 - root_mean_squared_error: 0.1110 - mae: 0.0696 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0570 - val_mae: 0.0405\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00423 to 0.00325, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0111 - root_mean_squared_error: 0.1054 - mae: 0.0670 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0602 - val_mae: 0.0441\n",
            "\n",
            "Epoch 00008: val_loss did not improve from 0.00325\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0095 - root_mean_squared_error: 0.0973 - mae: 0.0639 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0546 - val_mae: 0.0390\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00325 to 0.00298, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0102 - root_mean_squared_error: 0.1008 - mae: 0.0642 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0671 - val_mae: 0.0503\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00298\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0097 - root_mean_squared_error: 0.0985 - mae: 0.0647 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0673 - val_mae: 0.0499\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00298\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0068 - root_mean_squared_error: 0.0822 - mae: 0.0567 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0663 - val_mae: 0.0516\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00298\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 3s 16ms/step - loss: 0.0062 - root_mean_squared_error: 0.0786 - mae: 0.0529 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0510 - val_mae: 0.0361\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00298 to 0.00260, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0050 - root_mean_squared_error: 0.0708 - mae: 0.0477 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0526 - val_mae: 0.0377\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00260\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0041 - root_mean_squared_error: 0.0639 - mae: 0.0435 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00260 to 0.00225, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0038 - root_mean_squared_error: 0.0615 - mae: 0.0425 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0485 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00225\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0039 - root_mean_squared_error: 0.0622 - mae: 0.0427 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0496 - val_mae: 0.0349\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00225\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0034 - root_mean_squared_error: 0.0583 - mae: 0.0397 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0466 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00225 to 0.00217, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0035 - root_mean_squared_error: 0.0594 - mae: 0.0407 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00217 to 0.00212, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0029 - root_mean_squared_error: 0.0537 - mae: 0.0374 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0464 - val_mae: 0.0315\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00212\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0036 - root_mean_squared_error: 0.0601 - mae: 0.0394 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0440 - val_mae: 0.0295\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00212 to 0.00194, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 4s 18ms/step - loss: 0.0032 - root_mean_squared_error: 0.0561 - mae: 0.0381 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0448 - val_mae: 0.0298\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00194\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0033 - root_mean_squared_error: 0.0574 - mae: 0.0381 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0434 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00194 to 0.00188, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 3s 16ms/step - loss: 0.0031 - root_mean_squared_error: 0.0552 - mae: 0.0381 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0444 - val_mae: 0.0295\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00188\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 3s 16ms/step - loss: 0.0033 - root_mean_squared_error: 0.0575 - mae: 0.0394 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0477 - val_mae: 0.0336\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00188\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0039 - root_mean_squared_error: 0.0622 - mae: 0.0420 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0303\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00188\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0033 - root_mean_squared_error: 0.0571 - mae: 0.0388 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0475 - val_mae: 0.0325\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00188\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0031 - root_mean_squared_error: 0.0552 - mae: 0.0371 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0482 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00188\n",
            "120/120 [==============================] - 1s 4ms/step - loss: 0.0019 - root_mean_squared_error: 0.0434 - mae: 0.0291\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 6/6 [47:44<00:00, 477.45s/it]\n",
            "  0%|          | 0/6 [00:00<?, ?it/s]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "[{'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 8, 'n_timewindow': 2}, {'n_neurons': 64, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 32, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}]\n",
            "Iteration:  3\n",
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 11s 31ms/step - loss: 0.2500 - root_mean_squared_error: 0.4652 - mae: 0.3127 - val_loss: 0.0352 - val_root_mean_squared_error: 0.1877 - val_mae: 0.1753\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.03521, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0461 - root_mean_squared_error: 0.2145 - mae: 0.1330 - val_loss: 0.0235 - val_root_mean_squared_error: 0.1534 - val_mae: 0.1392\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.03521 to 0.02354, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0376 - root_mean_squared_error: 0.1934 - mae: 0.1146 - val_loss: 0.0111 - val_root_mean_squared_error: 0.1055 - val_mae: 0.0847\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.02354 to 0.01114, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0296 - root_mean_squared_error: 0.1714 - mae: 0.1008 - val_loss: 0.0109 - val_root_mean_squared_error: 0.1045 - val_mae: 0.0814\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01114 to 0.01093, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0269 - root_mean_squared_error: 0.1638 - mae: 0.0912 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0817 - val_mae: 0.0631\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01093 to 0.00667, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0220 - root_mean_squared_error: 0.1479 - mae: 0.0873 - val_loss: 0.0068 - val_root_mean_squared_error: 0.0827 - val_mae: 0.0613\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00667\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0244 - root_mean_squared_error: 0.1558 - mae: 0.0878 - val_loss: 0.0057 - val_root_mean_squared_error: 0.0756 - val_mae: 0.0565\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00667 to 0.00571, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0198 - root_mean_squared_error: 0.1403 - mae: 0.0816 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0703 - val_mae: 0.0523\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00571 to 0.00494, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0220 - root_mean_squared_error: 0.1481 - mae: 0.0818 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0699 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00494 to 0.00489, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0194 - root_mean_squared_error: 0.1390 - mae: 0.0797 - val_loss: 0.0056 - val_root_mean_squared_error: 0.0750 - val_mae: 0.0556\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00489\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0203 - root_mean_squared_error: 0.1421 - mae: 0.0810 - val_loss: 0.0059 - val_root_mean_squared_error: 0.0766 - val_mae: 0.0622\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00489\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0125 - root_mean_squared_error: 0.1117 - mae: 0.0688 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0660 - val_mae: 0.0497\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00489 to 0.00436, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0147 - root_mean_squared_error: 0.1208 - mae: 0.0707 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0411\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00436 to 0.00313, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0105 - root_mean_squared_error: 0.1023 - mae: 0.0608 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0599 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00313\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0101 - root_mean_squared_error: 0.1005 - mae: 0.0593 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0519 - val_mae: 0.0369\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00313 to 0.00269, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0085 - root_mean_squared_error: 0.0918 - mae: 0.0543 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0522 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00269\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0089 - root_mean_squared_error: 0.0944 - mae: 0.0572 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0504 - val_mae: 0.0360\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00269 to 0.00254, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0079 - root_mean_squared_error: 0.0888 - mae: 0.0535 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0491 - val_mae: 0.0348\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00254 to 0.00241, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0066 - root_mean_squared_error: 0.0811 - mae: 0.0519 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0482 - val_mae: 0.0337\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00241 to 0.00232, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0065 - root_mean_squared_error: 0.0805 - mae: 0.0484 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0327\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00232 to 0.00225, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0067 - root_mean_squared_error: 0.0818 - mae: 0.0497 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00225 to 0.00211, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0076 - root_mean_squared_error: 0.0868 - mae: 0.0505 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00211\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0063 - root_mean_squared_error: 0.0791 - mae: 0.0477 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00211 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0485 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0311\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00209 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0066 - root_mean_squared_error: 0.0812 - mae: 0.0487 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0465 - val_mae: 0.0313\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00209\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0499 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0493 - val_mae: 0.0347\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00209\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0055 - root_mean_squared_error: 0.0737 - mae: 0.0458 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0334\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00209\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0044 - root_mean_squared_error: 0.0664 - mae: 0.0440 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0503 - val_mae: 0.0343\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00209\n",
            "Epoch 29/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0041 - root_mean_squared_error: 0.0636 - mae: 0.0414 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0477 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00209\n",
            "120/120 [==============================] - 1s 5ms/step - loss: 0.0021 - root_mean_squared_error: 0.0457 - mae: 0.0311\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 17%|█▋        | 1/6 [03:04<15:23, 184.78s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 8, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "26/26 [==============================] - 8s 135ms/step - loss: 0.5113 - root_mean_squared_error: 0.6833 - mae: 0.4632 - val_loss: 0.0102 - val_root_mean_squared_error: 0.1009 - val_mae: 0.0831\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01018, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101256.hdf5\n",
            "Epoch 2/50\n",
            "26/26 [==============================] - 3s 104ms/step - loss: 0.0517 - root_mean_squared_error: 0.2273 - mae: 0.1530 - val_loss: 0.0125 - val_root_mean_squared_error: 0.1118 - val_mae: 0.0995\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01018\n",
            "Epoch 3/50\n",
            "26/26 [==============================] - 3s 103ms/step - loss: 0.0524 - root_mean_squared_error: 0.2288 - mae: 0.1391 - val_loss: 0.0140 - val_root_mean_squared_error: 0.1183 - val_mae: 0.1075\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01018\n",
            "Epoch 4/50\n",
            "26/26 [==============================] - 3s 104ms/step - loss: 0.0375 - root_mean_squared_error: 0.1937 - mae: 0.1219 - val_loss: 0.0170 - val_root_mean_squared_error: 0.1303 - val_mae: 0.1207\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01018\n",
            "Epoch 5/50\n",
            "26/26 [==============================] - 3s 103ms/step - loss: 0.0373 - root_mean_squared_error: 0.1930 - mae: 0.1167 - val_loss: 0.0195 - val_root_mean_squared_error: 0.1395 - val_mae: 0.1299\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.01018\n",
            "Epoch 6/50\n",
            "26/26 [==============================] - 3s 103ms/step - loss: 0.0406 - root_mean_squared_error: 0.2012 - mae: 0.1126 - val_loss: 0.0218 - val_root_mean_squared_error: 0.1475 - val_mae: 0.1377\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.01018\n",
            "120/120 [==============================] - 1s 7ms/step - loss: 0.0102 - root_mean_squared_error: 0.1009 - mae: 0.0831\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 33%|███▎      | 2/6 [03:30<09:08, 137.20s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 64, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}\n",
            "64\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 30s 126ms/step - loss: 0.3984 - root_mean_squared_error: 0.6055 - mae: 0.4360 - val_loss: 0.0101 - val_root_mean_squared_error: 0.1005 - val_mae: 0.0663\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01011, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 25s 122ms/step - loss: 0.0466 - root_mean_squared_error: 0.2157 - mae: 0.1475 - val_loss: 0.0145 - val_root_mean_squared_error: 0.1202 - val_mae: 0.0891\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01011\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 25s 122ms/step - loss: 0.0342 - root_mean_squared_error: 0.1848 - mae: 0.1246 - val_loss: 0.0282 - val_root_mean_squared_error: 0.1679 - val_mae: 0.1246\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01011\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 25s 121ms/step - loss: 0.0288 - root_mean_squared_error: 0.1696 - mae: 0.1156 - val_loss: 0.0069 - val_root_mean_squared_error: 0.0831 - val_mae: 0.0633\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01011 to 0.00691, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 26s 123ms/step - loss: 0.0240 - root_mean_squared_error: 0.1544 - mae: 0.1002 - val_loss: 0.0088 - val_root_mean_squared_error: 0.0937 - val_mae: 0.0722\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00691\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 25s 122ms/step - loss: 0.0222 - root_mean_squared_error: 0.1488 - mae: 0.0963 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0820 - val_mae: 0.0638\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00691 to 0.00673, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 25s 122ms/step - loss: 0.0213 - root_mean_squared_error: 0.1458 - mae: 0.0908 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0672 - val_mae: 0.0487\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00673 to 0.00451, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 26s 123ms/step - loss: 0.0187 - root_mean_squared_error: 0.1368 - mae: 0.0862 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0616 - val_mae: 0.0442\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00451 to 0.00380, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 26s 123ms/step - loss: 0.0206 - root_mean_squared_error: 0.1433 - mae: 0.0894 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0631 - val_mae: 0.0463\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00380\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 25s 123ms/step - loss: 0.0148 - root_mean_squared_error: 0.1215 - mae: 0.0786 - val_loss: 0.0193 - val_root_mean_squared_error: 0.1388 - val_mae: 0.1037\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00380\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 25s 122ms/step - loss: 0.0196 - root_mean_squared_error: 0.1398 - mae: 0.0939 - val_loss: 0.0055 - val_root_mean_squared_error: 0.0744 - val_mae: 0.0582\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00380\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 25s 122ms/step - loss: 0.0169 - root_mean_squared_error: 0.1291 - mae: 0.0848 - val_loss: 0.0212 - val_root_mean_squared_error: 0.1457 - val_mae: 0.0994\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00380\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 26s 123ms/step - loss: 0.0136 - root_mean_squared_error: 0.1164 - mae: 0.0769 - val_loss: 0.0085 - val_root_mean_squared_error: 0.0921 - val_mae: 0.0724\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00380\n",
            "120/120 [==============================] - 4s 27ms/step - loss: 0.0038 - root_mean_squared_error: 0.0616 - mae: 0.0442\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 50%|█████     | 3/6 [09:18<10:00, 200.33s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 6s 28ms/step - loss: 0.5187 - root_mean_squared_error: 0.6640 - mae: 0.4566 - val_loss: 0.0100 - val_root_mean_squared_error: 0.0999 - val_mae: 0.0658\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.00998, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 3s 26ms/step - loss: 0.0406 - root_mean_squared_error: 0.2014 - mae: 0.1394 - val_loss: 0.0128 - val_root_mean_squared_error: 0.1133 - val_mae: 0.0726\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.00998\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 2s 23ms/step - loss: 0.0337 - root_mean_squared_error: 0.1833 - mae: 0.1160 - val_loss: 0.0136 - val_root_mean_squared_error: 0.1168 - val_mae: 0.0799\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00998\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 2s 24ms/step - loss: 0.0243 - root_mean_squared_error: 0.1556 - mae: 0.1001 - val_loss: 0.0181 - val_root_mean_squared_error: 0.1347 - val_mae: 0.1019\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00998\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 2s 23ms/step - loss: 0.0235 - root_mean_squared_error: 0.1530 - mae: 0.0921 - val_loss: 0.0168 - val_root_mean_squared_error: 0.1295 - val_mae: 0.1032\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00998\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 2s 24ms/step - loss: 0.0185 - root_mean_squared_error: 0.1357 - mae: 0.0822 - val_loss: 0.0104 - val_root_mean_squared_error: 0.1021 - val_mae: 0.0812\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00998\n",
            "120/120 [==============================] - 1s 4ms/step - loss: 0.0100 - root_mean_squared_error: 0.0999 - mae: 0.0658\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 67%|██████▋   | 4/6 [09:40<04:53, 146.92s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 11s 31ms/step - loss: 0.2500 - root_mean_squared_error: 0.4652 - mae: 0.3127 - val_loss: 0.0352 - val_root_mean_squared_error: 0.1877 - val_mae: 0.1753\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.03521, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0461 - root_mean_squared_error: 0.2145 - mae: 0.1330 - val_loss: 0.0235 - val_root_mean_squared_error: 0.1534 - val_mae: 0.1392\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.03521 to 0.02354, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0376 - root_mean_squared_error: 0.1934 - mae: 0.1146 - val_loss: 0.0111 - val_root_mean_squared_error: 0.1055 - val_mae: 0.0847\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.02354 to 0.01114, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0296 - root_mean_squared_error: 0.1714 - mae: 0.1008 - val_loss: 0.0109 - val_root_mean_squared_error: 0.1045 - val_mae: 0.0814\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01114 to 0.01093, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0269 - root_mean_squared_error: 0.1638 - mae: 0.0912 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0817 - val_mae: 0.0631\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01093 to 0.00667, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0220 - root_mean_squared_error: 0.1479 - mae: 0.0873 - val_loss: 0.0068 - val_root_mean_squared_error: 0.0827 - val_mae: 0.0613\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00667\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0244 - root_mean_squared_error: 0.1558 - mae: 0.0878 - val_loss: 0.0057 - val_root_mean_squared_error: 0.0756 - val_mae: 0.0565\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00667 to 0.00571, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0198 - root_mean_squared_error: 0.1403 - mae: 0.0816 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0703 - val_mae: 0.0523\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00571 to 0.00494, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0220 - root_mean_squared_error: 0.1481 - mae: 0.0818 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0699 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00494 to 0.00489, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0194 - root_mean_squared_error: 0.1390 - mae: 0.0797 - val_loss: 0.0056 - val_root_mean_squared_error: 0.0750 - val_mae: 0.0556\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00489\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0203 - root_mean_squared_error: 0.1421 - mae: 0.0810 - val_loss: 0.0059 - val_root_mean_squared_error: 0.0766 - val_mae: 0.0622\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00489\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0125 - root_mean_squared_error: 0.1117 - mae: 0.0688 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0660 - val_mae: 0.0497\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00489 to 0.00436, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0147 - root_mean_squared_error: 0.1208 - mae: 0.0707 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0411\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00436 to 0.00313, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0105 - root_mean_squared_error: 0.1023 - mae: 0.0608 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0599 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00313\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0101 - root_mean_squared_error: 0.1005 - mae: 0.0593 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0519 - val_mae: 0.0369\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00313 to 0.00269, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0085 - root_mean_squared_error: 0.0918 - mae: 0.0543 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0522 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00269\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0089 - root_mean_squared_error: 0.0944 - mae: 0.0572 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0504 - val_mae: 0.0360\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00269 to 0.00254, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0079 - root_mean_squared_error: 0.0888 - mae: 0.0535 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0491 - val_mae: 0.0348\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00254 to 0.00241, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0066 - root_mean_squared_error: 0.0811 - mae: 0.0519 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0482 - val_mae: 0.0337\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00241 to 0.00232, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0065 - root_mean_squared_error: 0.0805 - mae: 0.0484 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0327\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00232 to 0.00225, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0067 - root_mean_squared_error: 0.0818 - mae: 0.0497 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00225 to 0.00211, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0076 - root_mean_squared_error: 0.0868 - mae: 0.0505 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00211\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0063 - root_mean_squared_error: 0.0791 - mae: 0.0477 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00211 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0485 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0311\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00209 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0066 - root_mean_squared_error: 0.0812 - mae: 0.0487 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0465 - val_mae: 0.0313\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00209\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0499 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0493 - val_mae: 0.0347\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00209\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 6s 27ms/step - loss: 0.0055 - root_mean_squared_error: 0.0737 - mae: 0.0458 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0334\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00209\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0044 - root_mean_squared_error: 0.0664 - mae: 0.0440 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0503 - val_mae: 0.0343\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00209\n",
            "Epoch 29/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0041 - root_mean_squared_error: 0.0636 - mae: 0.0414 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0477 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00209\n",
            "120/120 [==============================] - 1s 6ms/step - loss: 0.0021 - root_mean_squared_error: 0.0457 - mae: 0.0311\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 83%|████████▎ | 5/6 [12:41<02:37, 157.09s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 32, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}\n",
            "32\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 13s 88ms/step - loss: 0.3301 - root_mean_squared_error: 0.5399 - mae: 0.3572 - val_loss: 0.0110 - val_root_mean_squared_error: 0.1051 - val_mae: 0.0900\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01104, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0395 - root_mean_squared_error: 0.1985 - mae: 0.1278 - val_loss: 0.0102 - val_root_mean_squared_error: 0.1010 - val_mae: 0.0830\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01104 to 0.01019, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 8s 77ms/step - loss: 0.0376 - root_mean_squared_error: 0.1938 - mae: 0.1209 - val_loss: 0.0106 - val_root_mean_squared_error: 0.1030 - val_mae: 0.0858\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01019\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 8s 76ms/step - loss: 0.0312 - root_mean_squared_error: 0.1765 - mae: 0.1053 - val_loss: 0.0106 - val_root_mean_squared_error: 0.1029 - val_mae: 0.0859\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01019\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0309 - root_mean_squared_error: 0.1752 - mae: 0.1008 - val_loss: 0.0083 - val_root_mean_squared_error: 0.0913 - val_mae: 0.0730\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01019 to 0.00834, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 8s 77ms/step - loss: 0.0269 - root_mean_squared_error: 0.1636 - mae: 0.0891 - val_loss: 0.0136 - val_root_mean_squared_error: 0.1168 - val_mae: 0.0906\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00834\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 8s 77ms/step - loss: 0.0229 - root_mean_squared_error: 0.1510 - mae: 0.0835 - val_loss: 0.0062 - val_root_mean_squared_error: 0.0787 - val_mae: 0.0595\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00834 to 0.00619, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 8s 77ms/step - loss: 0.0212 - root_mean_squared_error: 0.1452 - mae: 0.0784 - val_loss: 0.0046 - val_root_mean_squared_error: 0.0675 - val_mae: 0.0509\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00619 to 0.00456, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 8s 79ms/step - loss: 0.0190 - root_mean_squared_error: 0.1374 - mae: 0.0736 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0662 - val_mae: 0.0495\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00456 to 0.00439, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 8s 77ms/step - loss: 0.0221 - root_mean_squared_error: 0.1477 - mae: 0.0751 - val_loss: 0.0048 - val_root_mean_squared_error: 0.0691 - val_mae: 0.0509\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00439\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 8s 79ms/step - loss: 0.0177 - root_mean_squared_error: 0.1331 - mae: 0.0704 - val_loss: 0.0042 - val_root_mean_squared_error: 0.0644 - val_mae: 0.0487\n",
            "\n",
            "Epoch 00011: val_loss improved from 0.00439 to 0.00415, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0178 - root_mean_squared_error: 0.1325 - mae: 0.0699 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0629 - val_mae: 0.0469\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00415 to 0.00396, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0156 - root_mean_squared_error: 0.1247 - mae: 0.0660 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0543 - val_mae: 0.0395\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00396 to 0.00295, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 8s 79ms/step - loss: 0.0163 - root_mean_squared_error: 0.1274 - mae: 0.0676 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0552 - val_mae: 0.0403\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00295\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 8s 77ms/step - loss: 0.0141 - root_mean_squared_error: 0.1185 - mae: 0.0625 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0596 - val_mae: 0.0444\n",
            "\n",
            "Epoch 00015: val_loss did not improve from 0.00295\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 8s 77ms/step - loss: 0.0184 - root_mean_squared_error: 0.1353 - mae: 0.0681 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0513 - val_mae: 0.0364\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00295 to 0.00263, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0148 - root_mean_squared_error: 0.1216 - mae: 0.0627 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0516 - val_mae: 0.0370\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00263\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0178 - root_mean_squared_error: 0.1330 - mae: 0.0657 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0510 - val_mae: 0.0361\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00263 to 0.00260, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0165 - root_mean_squared_error: 0.1280 - mae: 0.0644 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0488 - val_mae: 0.0343\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00260 to 0.00238, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0150 - root_mean_squared_error: 0.1219 - mae: 0.0646 - val_loss: 0.0354 - val_root_mean_squared_error: 0.1882 - val_mae: 0.1118\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00238\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0154 - root_mean_squared_error: 0.1238 - mae: 0.0673 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0730 - val_mae: 0.0520\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00238\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 8s 80ms/step - loss: 0.0139 - root_mean_squared_error: 0.1179 - mae: 0.0634 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0596 - val_mae: 0.0459\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00238\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 8s 79ms/step - loss: 0.0109 - root_mean_squared_error: 0.1044 - mae: 0.0573 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0684 - val_mae: 0.0463\n",
            "\n",
            "Epoch 00023: val_loss did not improve from 0.00238\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 8s 78ms/step - loss: 0.0096 - root_mean_squared_error: 0.0977 - mae: 0.0545 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0572 - val_mae: 0.0419\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00238\n",
            "120/120 [==============================] - 2s 11ms/step - loss: 0.0024 - root_mean_squared_error: 0.0488 - mae: 0.0343\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 6/6 [16:21<00:00, 163.67s/it]\n",
            "  0%|          | 0/6 [00:00<?, ?it/s]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "[{'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 64, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 9, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 128, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}, {'n_neurons': 64, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}]\n",
            "Iteration:  4\n",
            "{'n_neurons': 64, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}\n",
            "64\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 31s 129ms/step - loss: 0.3984 - root_mean_squared_error: 0.6055 - mae: 0.4360 - val_loss: 0.0101 - val_root_mean_squared_error: 0.1005 - val_mae: 0.0663\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01011, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 26s 124ms/step - loss: 0.0466 - root_mean_squared_error: 0.2157 - mae: 0.1475 - val_loss: 0.0145 - val_root_mean_squared_error: 0.1202 - val_mae: 0.0891\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01011\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 26s 126ms/step - loss: 0.0342 - root_mean_squared_error: 0.1848 - mae: 0.1246 - val_loss: 0.0282 - val_root_mean_squared_error: 0.1679 - val_mae: 0.1246\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01011\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 26s 125ms/step - loss: 0.0288 - root_mean_squared_error: 0.1696 - mae: 0.1156 - val_loss: 0.0069 - val_root_mean_squared_error: 0.0831 - val_mae: 0.0633\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01011 to 0.00691, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 26s 124ms/step - loss: 0.0240 - root_mean_squared_error: 0.1544 - mae: 0.1002 - val_loss: 0.0088 - val_root_mean_squared_error: 0.0937 - val_mae: 0.0722\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00691\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 26s 124ms/step - loss: 0.0222 - root_mean_squared_error: 0.1488 - mae: 0.0963 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0820 - val_mae: 0.0638\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00691 to 0.00673, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 26s 125ms/step - loss: 0.0213 - root_mean_squared_error: 0.1458 - mae: 0.0908 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0672 - val_mae: 0.0487\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00673 to 0.00451, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 26s 126ms/step - loss: 0.0187 - root_mean_squared_error: 0.1368 - mae: 0.0862 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0616 - val_mae: 0.0442\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00451 to 0.00380, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 27s 128ms/step - loss: 0.0206 - root_mean_squared_error: 0.1433 - mae: 0.0894 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0631 - val_mae: 0.0463\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00380\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 26s 126ms/step - loss: 0.0148 - root_mean_squared_error: 0.1215 - mae: 0.0786 - val_loss: 0.0193 - val_root_mean_squared_error: 0.1388 - val_mae: 0.1037\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00380\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 26s 126ms/step - loss: 0.0196 - root_mean_squared_error: 0.1398 - mae: 0.0939 - val_loss: 0.0055 - val_root_mean_squared_error: 0.0744 - val_mae: 0.0582\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00380\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 26s 125ms/step - loss: 0.0169 - root_mean_squared_error: 0.1291 - mae: 0.0848 - val_loss: 0.0212 - val_root_mean_squared_error: 0.1457 - val_mae: 0.0994\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00380\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 26s 126ms/step - loss: 0.0136 - root_mean_squared_error: 0.1164 - mae: 0.0769 - val_loss: 0.0085 - val_root_mean_squared_error: 0.0921 - val_mae: 0.0724\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00380\n",
            "120/120 [==============================] - 4s 28ms/step - loss: 0.0038 - root_mean_squared_error: 0.0616 - mae: 0.0442\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 17%|█▋        | 1/6 [05:58<29:50, 358.06s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 9, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "13/13 [==============================] - 5s 151ms/step - loss: 1.4694 - root_mean_squared_error: 1.1886 - mae: 0.9511 - val_loss: 0.0119 - val_root_mean_squared_error: 0.1092 - val_mae: 0.0682\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01193, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101512.hdf5\n",
            "Epoch 2/50\n",
            "13/13 [==============================] - 1s 68ms/step - loss: 0.1897 - root_mean_squared_error: 0.4343 - mae: 0.3174 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0969 - val_mae: 0.0692\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01193 to 0.00940, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101512.hdf5\n",
            "Epoch 3/50\n",
            "13/13 [==============================] - 1s 67ms/step - loss: 0.0770 - root_mean_squared_error: 0.2775 - mae: 0.2106 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0970 - val_mae: 0.0724\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00940\n",
            "Epoch 4/50\n",
            "13/13 [==============================] - 1s 66ms/step - loss: 0.0534 - root_mean_squared_error: 0.2309 - mae: 0.1614 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0971 - val_mae: 0.0687\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00940\n",
            "Epoch 5/50\n",
            "13/13 [==============================] - 1s 65ms/step - loss: 0.0377 - root_mean_squared_error: 0.1941 - mae: 0.1348 - val_loss: 0.0097 - val_root_mean_squared_error: 0.0986 - val_mae: 0.0663\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00940\n",
            "Epoch 6/50\n",
            "13/13 [==============================] - 1s 66ms/step - loss: 0.0361 - root_mean_squared_error: 0.1900 - mae: 0.1273 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0994 - val_mae: 0.0658\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00940\n",
            "Epoch 7/50\n",
            "13/13 [==============================] - 1s 68ms/step - loss: 0.0356 - root_mean_squared_error: 0.1887 - mae: 0.1172 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0997 - val_mae: 0.0657\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00940\n",
            "120/120 [==============================] - 1s 4ms/step - loss: 0.0094 - root_mean_squared_error: 0.0969 - mae: 0.0692\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 33%|███▎      | 2/6 [06:10<16:57, 254.33s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 11s 32ms/step - loss: 0.2500 - root_mean_squared_error: 0.4652 - mae: 0.3127 - val_loss: 0.0352 - val_root_mean_squared_error: 0.1877 - val_mae: 0.1753\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.03521, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0461 - root_mean_squared_error: 0.2145 - mae: 0.1330 - val_loss: 0.0235 - val_root_mean_squared_error: 0.1534 - val_mae: 0.1392\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.03521 to 0.02354, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0376 - root_mean_squared_error: 0.1934 - mae: 0.1146 - val_loss: 0.0111 - val_root_mean_squared_error: 0.1055 - val_mae: 0.0847\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.02354 to 0.01114, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0296 - root_mean_squared_error: 0.1714 - mae: 0.1008 - val_loss: 0.0109 - val_root_mean_squared_error: 0.1045 - val_mae: 0.0814\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01114 to 0.01093, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0269 - root_mean_squared_error: 0.1638 - mae: 0.0912 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0817 - val_mae: 0.0631\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01093 to 0.00667, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0220 - root_mean_squared_error: 0.1479 - mae: 0.0873 - val_loss: 0.0068 - val_root_mean_squared_error: 0.0827 - val_mae: 0.0613\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00667\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0244 - root_mean_squared_error: 0.1558 - mae: 0.0878 - val_loss: 0.0057 - val_root_mean_squared_error: 0.0756 - val_mae: 0.0565\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00667 to 0.00571, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0198 - root_mean_squared_error: 0.1403 - mae: 0.0816 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0703 - val_mae: 0.0523\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00571 to 0.00494, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0220 - root_mean_squared_error: 0.1481 - mae: 0.0818 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0699 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00494 to 0.00489, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0194 - root_mean_squared_error: 0.1390 - mae: 0.0797 - val_loss: 0.0056 - val_root_mean_squared_error: 0.0750 - val_mae: 0.0556\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00489\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0203 - root_mean_squared_error: 0.1421 - mae: 0.0810 - val_loss: 0.0059 - val_root_mean_squared_error: 0.0766 - val_mae: 0.0622\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00489\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0125 - root_mean_squared_error: 0.1117 - mae: 0.0688 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0660 - val_mae: 0.0497\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00489 to 0.00436, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0147 - root_mean_squared_error: 0.1208 - mae: 0.0707 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0411\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00436 to 0.00313, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0105 - root_mean_squared_error: 0.1023 - mae: 0.0608 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0599 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00313\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0101 - root_mean_squared_error: 0.1005 - mae: 0.0593 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0519 - val_mae: 0.0369\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00313 to 0.00269, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 6s 30ms/step - loss: 0.0085 - root_mean_squared_error: 0.0918 - mae: 0.0543 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0522 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00269\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0089 - root_mean_squared_error: 0.0944 - mae: 0.0572 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0504 - val_mae: 0.0360\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00269 to 0.00254, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0079 - root_mean_squared_error: 0.0888 - mae: 0.0535 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0491 - val_mae: 0.0348\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00254 to 0.00241, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0066 - root_mean_squared_error: 0.0811 - mae: 0.0519 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0482 - val_mae: 0.0337\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00241 to 0.00232, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0065 - root_mean_squared_error: 0.0805 - mae: 0.0484 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0327\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00232 to 0.00225, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0067 - root_mean_squared_error: 0.0818 - mae: 0.0497 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00225 to 0.00211, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 6s 30ms/step - loss: 0.0076 - root_mean_squared_error: 0.0868 - mae: 0.0505 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00211\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0063 - root_mean_squared_error: 0.0791 - mae: 0.0477 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00211 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0485 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0311\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00209 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 6s 30ms/step - loss: 0.0066 - root_mean_squared_error: 0.0812 - mae: 0.0487 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0465 - val_mae: 0.0313\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00209\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0499 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0493 - val_mae: 0.0347\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00209\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0055 - root_mean_squared_error: 0.0737 - mae: 0.0458 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0334\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00209\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0044 - root_mean_squared_error: 0.0664 - mae: 0.0440 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0503 - val_mae: 0.0343\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00209\n",
            "Epoch 29/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0041 - root_mean_squared_error: 0.0636 - mae: 0.0414 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0477 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00209\n",
            "120/120 [==============================] - 1s 6ms/step - loss: 0.0021 - root_mean_squared_error: 0.0457 - mae: 0.0311\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 50%|█████     | 3/6 [09:25<11:49, 236.60s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 128, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}\n",
            "128\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 67s 605ms/step - loss: 0.8600 - root_mean_squared_error: 0.8920 - mae: 0.6063 - val_loss: 0.0142 - val_root_mean_squared_error: 0.1193 - val_mae: 0.1086\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01423, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 62s 599ms/step - loss: 0.3279 - root_mean_squared_error: 0.5688 - mae: 0.4029 - val_loss: 0.0691 - val_root_mean_squared_error: 0.2629 - val_mae: 0.2110\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01423\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 62s 592ms/step - loss: 0.2011 - root_mean_squared_error: 0.4478 - mae: 0.3125 - val_loss: 0.0217 - val_root_mean_squared_error: 0.1473 - val_mae: 0.1197\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01423\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 60s 581ms/step - loss: 0.0888 - root_mean_squared_error: 0.2975 - mae: 0.2133 - val_loss: 0.0423 - val_root_mean_squared_error: 0.2056 - val_mae: 0.1486\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01423\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 61s 586ms/step - loss: 0.0442 - root_mean_squared_error: 0.2103 - mae: 0.1458 - val_loss: 0.0511 - val_root_mean_squared_error: 0.2260 - val_mae: 0.1570\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.01423\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 61s 589ms/step - loss: 0.0400 - root_mean_squared_error: 0.1996 - mae: 0.1414 - val_loss: 0.0241 - val_root_mean_squared_error: 0.1553 - val_mae: 0.1169\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.01423\n",
            "120/120 [==============================] - 10s 79ms/step - loss: 0.0142 - root_mean_squared_error: 0.1193 - mae: 0.1086\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 67%|██████▋   | 4/6 [15:54<09:24, 282.32s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 64, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "64\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 25s 99ms/step - loss: 0.3890 - root_mean_squared_error: 0.5932 - mae: 0.4205 - val_loss: 0.0098 - val_root_mean_squared_error: 0.0992 - val_mae: 0.0655\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.00983, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 20s 96ms/step - loss: 0.0505 - root_mean_squared_error: 0.2242 - mae: 0.1526 - val_loss: 0.0116 - val_root_mean_squared_error: 0.1076 - val_mae: 0.0770\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.00983\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 20s 96ms/step - loss: 0.0341 - root_mean_squared_error: 0.1846 - mae: 0.1218 - val_loss: 0.0187 - val_root_mean_squared_error: 0.1366 - val_mae: 0.0946\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00983\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 20s 95ms/step - loss: 0.0283 - root_mean_squared_error: 0.1682 - mae: 0.1112 - val_loss: 0.0134 - val_root_mean_squared_error: 0.1159 - val_mae: 0.0933\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00983\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 20s 95ms/step - loss: 0.0268 - root_mean_squared_error: 0.1638 - mae: 0.1072 - val_loss: 0.0096 - val_root_mean_squared_error: 0.0981 - val_mae: 0.0759\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00983 to 0.00963, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 20s 94ms/step - loss: 0.0218 - root_mean_squared_error: 0.1474 - mae: 0.0969 - val_loss: 0.0077 - val_root_mean_squared_error: 0.0880 - val_mae: 0.0660\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00963 to 0.00775, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 19s 94ms/step - loss: 0.0245 - root_mean_squared_error: 0.1563 - mae: 0.0992 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0993 - val_mae: 0.0738\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00775\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 20s 95ms/step - loss: 0.0218 - root_mean_squared_error: 0.1477 - mae: 0.0927 - val_loss: 0.0062 - val_root_mean_squared_error: 0.0785 - val_mae: 0.0564\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00775 to 0.00616, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 20s 94ms/step - loss: 0.0210 - root_mean_squared_error: 0.1447 - mae: 0.0923 - val_loss: 0.0060 - val_root_mean_squared_error: 0.0771 - val_mae: 0.0569\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00616 to 0.00595, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 20s 94ms/step - loss: 0.0185 - root_mean_squared_error: 0.1360 - mae: 0.0871 - val_loss: 0.0076 - val_root_mean_squared_error: 0.0872 - val_mae: 0.0633\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00595\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 20s 95ms/step - loss: 0.0200 - root_mean_squared_error: 0.1411 - mae: 0.0929 - val_loss: 0.0070 - val_root_mean_squared_error: 0.0839 - val_mae: 0.0609\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00595\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 20s 95ms/step - loss: 0.0160 - root_mean_squared_error: 0.1264 - mae: 0.0830 - val_loss: 0.0069 - val_root_mean_squared_error: 0.0833 - val_mae: 0.0642\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00595\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 20s 95ms/step - loss: 0.0155 - root_mean_squared_error: 0.1244 - mae: 0.0818 - val_loss: 0.0061 - val_root_mean_squared_error: 0.0779 - val_mae: 0.0574\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00595\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 20s 95ms/step - loss: 0.0148 - root_mean_squared_error: 0.1216 - mae: 0.0804 - val_loss: 0.0066 - val_root_mean_squared_error: 0.0811 - val_mae: 0.0564\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00595\n",
            "120/120 [==============================] - 3s 21ms/step - loss: 0.0060 - root_mean_squared_error: 0.0771 - mae: 0.0569\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 83%|████████▎ | 5/6 [20:47<04:45, 285.52s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 11s 31ms/step - loss: 0.2500 - root_mean_squared_error: 0.4652 - mae: 0.3127 - val_loss: 0.0352 - val_root_mean_squared_error: 0.1877 - val_mae: 0.1753\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.03521, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0461 - root_mean_squared_error: 0.2145 - mae: 0.1330 - val_loss: 0.0235 - val_root_mean_squared_error: 0.1534 - val_mae: 0.1392\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.03521 to 0.02354, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0376 - root_mean_squared_error: 0.1934 - mae: 0.1146 - val_loss: 0.0111 - val_root_mean_squared_error: 0.1055 - val_mae: 0.0847\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.02354 to 0.01114, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0296 - root_mean_squared_error: 0.1714 - mae: 0.1008 - val_loss: 0.0109 - val_root_mean_squared_error: 0.1045 - val_mae: 0.0814\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01114 to 0.01093, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0269 - root_mean_squared_error: 0.1638 - mae: 0.0912 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0817 - val_mae: 0.0631\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01093 to 0.00667, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0220 - root_mean_squared_error: 0.1479 - mae: 0.0873 - val_loss: 0.0068 - val_root_mean_squared_error: 0.0827 - val_mae: 0.0613\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00667\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0244 - root_mean_squared_error: 0.1558 - mae: 0.0878 - val_loss: 0.0057 - val_root_mean_squared_error: 0.0756 - val_mae: 0.0565\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00667 to 0.00571, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0198 - root_mean_squared_error: 0.1403 - mae: 0.0816 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0703 - val_mae: 0.0523\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00571 to 0.00494, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 6s 30ms/step - loss: 0.0220 - root_mean_squared_error: 0.1481 - mae: 0.0818 - val_loss: 0.0049 - val_root_mean_squared_error: 0.0699 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00494 to 0.00489, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0194 - root_mean_squared_error: 0.1390 - mae: 0.0797 - val_loss: 0.0056 - val_root_mean_squared_error: 0.0750 - val_mae: 0.0556\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00489\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0203 - root_mean_squared_error: 0.1421 - mae: 0.0810 - val_loss: 0.0059 - val_root_mean_squared_error: 0.0766 - val_mae: 0.0622\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00489\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 6s 30ms/step - loss: 0.0125 - root_mean_squared_error: 0.1117 - mae: 0.0688 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0660 - val_mae: 0.0497\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00489 to 0.00436, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0147 - root_mean_squared_error: 0.1208 - mae: 0.0707 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0411\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00436 to 0.00313, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0105 - root_mean_squared_error: 0.1023 - mae: 0.0608 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0599 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00313\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0101 - root_mean_squared_error: 0.1005 - mae: 0.0593 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0519 - val_mae: 0.0369\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00313 to 0.00269, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0085 - root_mean_squared_error: 0.0918 - mae: 0.0543 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0522 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00269\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0089 - root_mean_squared_error: 0.0944 - mae: 0.0572 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0504 - val_mae: 0.0360\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00269 to 0.00254, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0079 - root_mean_squared_error: 0.0888 - mae: 0.0535 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0491 - val_mae: 0.0348\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00254 to 0.00241, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0066 - root_mean_squared_error: 0.0811 - mae: 0.0519 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0482 - val_mae: 0.0337\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00241 to 0.00232, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0065 - root_mean_squared_error: 0.0805 - mae: 0.0484 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0327\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00232 to 0.00225, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 6s 29ms/step - loss: 0.0067 - root_mean_squared_error: 0.0818 - mae: 0.0497 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00225 to 0.00211, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0076 - root_mean_squared_error: 0.0868 - mae: 0.0505 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00211\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0063 - root_mean_squared_error: 0.0791 - mae: 0.0477 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00211 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0485 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0311\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00209 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0066 - root_mean_squared_error: 0.0812 - mae: 0.0487 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0465 - val_mae: 0.0313\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00209\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0062 - root_mean_squared_error: 0.0788 - mae: 0.0499 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0493 - val_mae: 0.0347\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00209\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0055 - root_mean_squared_error: 0.0737 - mae: 0.0458 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0334\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00209\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0044 - root_mean_squared_error: 0.0664 - mae: 0.0440 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0503 - val_mae: 0.0343\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00209\n",
            "Epoch 29/50\n",
            "208/208 [==============================] - 6s 28ms/step - loss: 0.0041 - root_mean_squared_error: 0.0636 - mae: 0.0414 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0477 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00209\n",
            "120/120 [==============================] - 1s 6ms/step - loss: 0.0021 - root_mean_squared_error: 0.0457 - mae: 0.0311\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 6/6 [23:56<00:00, 239.38s/it]\n",
            "  0%|          | 0/10 [00:00<?, ?it/s]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "[{'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 3, 'bs_double': 7, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 7, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 1.5}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 9, 'n_timewindow': 2}, {'n_neurons': 128, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}, {'n_neurons': 16, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 2}]\n",
            "Iteration:  5\n",
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 6, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 10s 52ms/step - loss: 0.2921 - root_mean_squared_error: 0.5076 - mae: 0.3355 - val_loss: 0.0186 - val_root_mean_squared_error: 0.1365 - val_mae: 0.1270\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01864, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0546 - root_mean_squared_error: 0.2332 - mae: 0.1444 - val_loss: 0.0219 - val_root_mean_squared_error: 0.1478 - val_mae: 0.1379\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01864\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0382 - root_mean_squared_error: 0.1949 - mae: 0.1193 - val_loss: 0.0294 - val_root_mean_squared_error: 0.1714 - val_mae: 0.1595\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01864\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0401 - root_mean_squared_error: 0.1989 - mae: 0.1131 - val_loss: 0.0233 - val_root_mean_squared_error: 0.1527 - val_mae: 0.1372\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01864\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0353 - root_mean_squared_error: 0.1871 - mae: 0.1058 - val_loss: 0.0143 - val_root_mean_squared_error: 0.1194 - val_mae: 0.1002\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01864 to 0.01427, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0216 - root_mean_squared_error: 0.1469 - mae: 0.0904 - val_loss: 0.0089 - val_root_mean_squared_error: 0.0946 - val_mae: 0.0757\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.01427 to 0.00895, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0249 - root_mean_squared_error: 0.1575 - mae: 0.0894 - val_loss: 0.0073 - val_root_mean_squared_error: 0.0852 - val_mae: 0.0661\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00895 to 0.00725, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0249 - root_mean_squared_error: 0.1577 - mae: 0.0873 - val_loss: 0.0071 - val_root_mean_squared_error: 0.0845 - val_mae: 0.0663\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00725 to 0.00714, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0210 - root_mean_squared_error: 0.1448 - mae: 0.0824 - val_loss: 0.0065 - val_root_mean_squared_error: 0.0806 - val_mae: 0.0640\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00714 to 0.00649, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0223 - root_mean_squared_error: 0.1482 - mae: 0.0813 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0738 - val_mae: 0.0565\n",
            "\n",
            "Epoch 00010: val_loss improved from 0.00649 to 0.00545, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0186 - root_mean_squared_error: 0.1359 - mae: 0.0778 - val_loss: 0.0046 - val_root_mean_squared_error: 0.0681 - val_mae: 0.0509\n",
            "\n",
            "Epoch 00011: val_loss improved from 0.00545 to 0.00464, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0164 - root_mean_squared_error: 0.1275 - mae: 0.0714 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0685 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00464\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0160 - root_mean_squared_error: 0.1263 - mae: 0.0718 - val_loss: 0.0042 - val_root_mean_squared_error: 0.0650 - val_mae: 0.0491\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00464 to 0.00422, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0159 - root_mean_squared_error: 0.1257 - mae: 0.0705 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0620 - val_mae: 0.0458\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00422 to 0.00384, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0158 - root_mean_squared_error: 0.1256 - mae: 0.0700 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0608 - val_mae: 0.0456\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00384 to 0.00369, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0211 - root_mean_squared_error: 0.1446 - mae: 0.0749 - val_loss: 0.0035 - val_root_mean_squared_error: 0.0593 - val_mae: 0.0437\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00369 to 0.00351, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0124 - root_mean_squared_error: 0.1110 - mae: 0.0637 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0577 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00351 to 0.00333, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0152 - root_mean_squared_error: 0.1225 - mae: 0.0674 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0573 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00333 to 0.00328, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0143 - root_mean_squared_error: 0.1196 - mae: 0.0647 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0564 - val_mae: 0.0412\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00328 to 0.00318, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0183 - root_mean_squared_error: 0.1347 - mae: 0.0695 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0660 - val_mae: 0.0485\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00318\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0136 - root_mean_squared_error: 0.1163 - mae: 0.0662 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0596 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00318\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0098 - root_mean_squared_error: 0.0988 - mae: 0.0582 - val_loss: 0.0041 - val_root_mean_squared_error: 0.0641 - val_mae: 0.0472\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00318\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0100 - root_mean_squared_error: 0.1000 - mae: 0.0570 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0535 - val_mae: 0.0375\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00318 to 0.00286, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0105 - root_mean_squared_error: 0.1017 - mae: 0.0545 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0523 - val_mae: 0.0378\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00286 to 0.00273, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 25/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0089 - root_mean_squared_error: 0.0939 - mae: 0.0530 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0500 - val_mae: 0.0356\n",
            "\n",
            "Epoch 00025: val_loss improved from 0.00273 to 0.00250, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 26/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0081 - root_mean_squared_error: 0.0900 - mae: 0.0522 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0560 - val_mae: 0.0408\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00250\n",
            "Epoch 27/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0070 - root_mean_squared_error: 0.0834 - mae: 0.0490 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0561 - val_mae: 0.0408\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00250\n",
            "Epoch 28/50\n",
            "104/104 [==============================] - 5s 44ms/step - loss: 0.0070 - root_mean_squared_error: 0.0837 - mae: 0.0478 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0466 - val_mae: 0.0330\n",
            "\n",
            "Epoch 00028: val_loss improved from 0.00250 to 0.00217, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 29/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0065 - root_mean_squared_error: 0.0801 - mae: 0.0460 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0331\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00217\n",
            "Epoch 30/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0066 - root_mean_squared_error: 0.0810 - mae: 0.0455 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0460 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00030: val_loss improved from 0.00217 to 0.00211, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 31/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0062 - root_mean_squared_error: 0.0784 - mae: 0.0454 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0451 - val_mae: 0.0305\n",
            "\n",
            "Epoch 00031: val_loss improved from 0.00211 to 0.00204, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 32/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0049 - root_mean_squared_error: 0.0702 - mae: 0.0432 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0454 - val_mae: 0.0312\n",
            "\n",
            "Epoch 00032: val_loss did not improve from 0.00204\n",
            "Epoch 33/50\n",
            "104/104 [==============================] - 5s 47ms/step - loss: 0.0049 - root_mean_squared_error: 0.0698 - mae: 0.0414 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0453 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00033: val_loss did not improve from 0.00204\n",
            "Epoch 34/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0071 - root_mean_squared_error: 0.0840 - mae: 0.0451 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0304\n",
            "\n",
            "Epoch 00034: val_loss improved from 0.00204 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 35/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0050 - root_mean_squared_error: 0.0706 - mae: 0.0419 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0452 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00035: val_loss did not improve from 0.00199\n",
            "Epoch 36/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0054 - root_mean_squared_error: 0.0734 - mae: 0.0422 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0438 - val_mae: 0.0301\n",
            "\n",
            "Epoch 00036: val_loss improved from 0.00199 to 0.00192, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 37/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0052 - root_mean_squared_error: 0.0717 - mae: 0.0414 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0445 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00037: val_loss did not improve from 0.00192\n",
            "Epoch 38/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0050 - root_mean_squared_error: 0.0706 - mae: 0.0414 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0442 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00038: val_loss did not improve from 0.00192\n",
            "Epoch 39/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0048 - root_mean_squared_error: 0.0694 - mae: 0.0407 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00039: val_loss improved from 0.00192 to 0.00187, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 40/50\n",
            "104/104 [==============================] - 5s 47ms/step - loss: 0.0040 - root_mean_squared_error: 0.0635 - mae: 0.0390 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0304\n",
            "\n",
            "Epoch 00040: val_loss did not improve from 0.00187\n",
            "Epoch 41/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0046 - root_mean_squared_error: 0.0674 - mae: 0.0402 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0434 - val_mae: 0.0293\n",
            "\n",
            "Epoch 00041: val_loss did not improve from 0.00187\n",
            "Epoch 42/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0045 - root_mean_squared_error: 0.0669 - mae: 0.0392 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0290\n",
            "\n",
            "Epoch 00042: val_loss improved from 0.00187 to 0.00187, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 43/50\n",
            "104/104 [==============================] - 5s 46ms/step - loss: 0.0043 - root_mean_squared_error: 0.0658 - mae: 0.0387 - val_loss: 0.0018 - val_root_mean_squared_error: 0.0428 - val_mae: 0.0286\n",
            "\n",
            "Epoch 00043: val_loss improved from 0.00187 to 0.00183, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 44/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0045 - root_mean_squared_error: 0.0669 - mae: 0.0390 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0290\n",
            "\n",
            "Epoch 00044: val_loss did not improve from 0.00183\n",
            "Epoch 45/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0041 - root_mean_squared_error: 0.0642 - mae: 0.0388 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0290\n",
            "\n",
            "Epoch 00045: val_loss did not improve from 0.00183\n",
            "Epoch 46/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0039 - root_mean_squared_error: 0.0625 - mae: 0.0381 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00046: val_loss did not improve from 0.00183\n",
            "Epoch 47/50\n",
            "104/104 [==============================] - 5s 47ms/step - loss: 0.0042 - root_mean_squared_error: 0.0651 - mae: 0.0393 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0433 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00047: val_loss did not improve from 0.00183\n",
            "Epoch 48/50\n",
            "104/104 [==============================] - 5s 45ms/step - loss: 0.0039 - root_mean_squared_error: 0.0622 - mae: 0.0384 - val_loss: 0.0018 - val_root_mean_squared_error: 0.0428 - val_mae: 0.0288\n",
            "\n",
            "Epoch 00048: val_loss did not improve from 0.00183\n",
            "120/120 [==============================] - 1s 7ms/step - loss: 0.0018 - root_mean_squared_error: 0.0428 - mae: 0.0286\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 10%|█         | 1/10 [04:04<36:37, 244.17s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 7s 19ms/step - loss: 0.3483 - root_mean_squared_error: 0.5415 - mae: 0.3699 - val_loss: 0.0134 - val_root_mean_squared_error: 0.1156 - val_mae: 0.0747\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01335, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0395 - root_mean_squared_error: 0.1987 - mae: 0.1352 - val_loss: 0.0214 - val_root_mean_squared_error: 0.1462 - val_mae: 0.1116\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01335\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0272 - root_mean_squared_error: 0.1649 - mae: 0.1076 - val_loss: 0.0122 - val_root_mean_squared_error: 0.1106 - val_mae: 0.0857\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.01335 to 0.01224, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0174 - root_mean_squared_error: 0.1317 - mae: 0.0868 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0733 - val_mae: 0.0542\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01224 to 0.00537, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0179 - root_mean_squared_error: 0.1335 - mae: 0.0824 - val_loss: 0.0042 - val_root_mean_squared_error: 0.0651 - val_mae: 0.0468\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00537 to 0.00423, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0144 - root_mean_squared_error: 0.1200 - mae: 0.0747 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0663 - val_mae: 0.0493\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00423\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0124 - root_mean_squared_error: 0.1110 - mae: 0.0696 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0570 - val_mae: 0.0405\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00423 to 0.00325, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0111 - root_mean_squared_error: 0.1054 - mae: 0.0670 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0602 - val_mae: 0.0441\n",
            "\n",
            "Epoch 00008: val_loss did not improve from 0.00325\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0095 - root_mean_squared_error: 0.0973 - mae: 0.0639 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0546 - val_mae: 0.0390\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00325 to 0.00298, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0102 - root_mean_squared_error: 0.1008 - mae: 0.0642 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0671 - val_mae: 0.0503\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00298\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0097 - root_mean_squared_error: 0.0985 - mae: 0.0647 - val_loss: 0.0045 - val_root_mean_squared_error: 0.0673 - val_mae: 0.0499\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00298\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0068 - root_mean_squared_error: 0.0822 - mae: 0.0567 - val_loss: 0.0044 - val_root_mean_squared_error: 0.0663 - val_mae: 0.0516\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00298\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0062 - root_mean_squared_error: 0.0786 - mae: 0.0529 - val_loss: 0.0026 - val_root_mean_squared_error: 0.0510 - val_mae: 0.0361\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00298 to 0.00260, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 3s 16ms/step - loss: 0.0050 - root_mean_squared_error: 0.0708 - mae: 0.0477 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0526 - val_mae: 0.0377\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00260\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0041 - root_mean_squared_error: 0.0639 - mae: 0.0435 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0474 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00260 to 0.00225, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 4s 18ms/step - loss: 0.0038 - root_mean_squared_error: 0.0615 - mae: 0.0425 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0485 - val_mae: 0.0329\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00225\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0039 - root_mean_squared_error: 0.0622 - mae: 0.0427 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0496 - val_mae: 0.0349\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00225\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0034 - root_mean_squared_error: 0.0583 - mae: 0.0397 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0466 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00225 to 0.00217, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 3s 16ms/step - loss: 0.0035 - root_mean_squared_error: 0.0594 - mae: 0.0407 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00217 to 0.00212, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0029 - root_mean_squared_error: 0.0537 - mae: 0.0374 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0464 - val_mae: 0.0315\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00212\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0036 - root_mean_squared_error: 0.0601 - mae: 0.0394 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0440 - val_mae: 0.0295\n",
            "\n",
            "Epoch 00021: val_loss improved from 0.00212 to 0.00194, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0032 - root_mean_squared_error: 0.0561 - mae: 0.0381 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0448 - val_mae: 0.0298\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00194\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0033 - root_mean_squared_error: 0.0574 - mae: 0.0381 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0434 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00194 to 0.00188, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0031 - root_mean_squared_error: 0.0552 - mae: 0.0381 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0444 - val_mae: 0.0295\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00188\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0033 - root_mean_squared_error: 0.0575 - mae: 0.0394 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0477 - val_mae: 0.0336\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00188\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0039 - root_mean_squared_error: 0.0622 - mae: 0.0420 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0303\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00188\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 3s 17ms/step - loss: 0.0033 - root_mean_squared_error: 0.0571 - mae: 0.0388 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0475 - val_mae: 0.0325\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00188\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 4s 17ms/step - loss: 0.0031 - root_mean_squared_error: 0.0552 - mae: 0.0371 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0482 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00188\n",
            "120/120 [==============================] - 1s 4ms/step - loss: 0.0019 - root_mean_squared_error: 0.0434 - mae: 0.0291\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 20%|██        | 2/10 [05:53<27:09, 203.65s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 8s 24ms/step - loss: 0.3829 - root_mean_squared_error: 0.5631 - mae: 0.3789 - val_loss: 0.0118 - val_root_mean_squared_error: 0.1085 - val_mae: 0.0693\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01177, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 5s 22ms/step - loss: 0.0382 - root_mean_squared_error: 0.1952 - mae: 0.1316 - val_loss: 0.0161 - val_root_mean_squared_error: 0.1268 - val_mae: 0.0930\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01177\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 5s 22ms/step - loss: 0.0272 - root_mean_squared_error: 0.1647 - mae: 0.1064 - val_loss: 0.0127 - val_root_mean_squared_error: 0.1127 - val_mae: 0.0859\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01177\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0194 - root_mean_squared_error: 0.1392 - mae: 0.0878 - val_loss: 0.0067 - val_root_mean_squared_error: 0.0819 - val_mae: 0.0604\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01177 to 0.00670, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0182 - root_mean_squared_error: 0.1349 - mae: 0.0834 - val_loss: 0.0078 - val_root_mean_squared_error: 0.0882 - val_mae: 0.0672\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00670\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 5s 22ms/step - loss: 0.0138 - root_mean_squared_error: 0.1173 - mae: 0.0737 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0727 - val_mae: 0.0538\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00670 to 0.00529, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 5s 22ms/step - loss: 0.0139 - root_mean_squared_error: 0.1173 - mae: 0.0725 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0684 - val_mae: 0.0496\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00529 to 0.00468, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0098 - root_mean_squared_error: 0.0991 - mae: 0.0649 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0608 - val_mae: 0.0440\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00468 to 0.00370, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0095 - root_mean_squared_error: 0.0976 - mae: 0.0628 - val_loss: 0.0040 - val_root_mean_squared_error: 0.0636 - val_mae: 0.0460\n",
            "\n",
            "Epoch 00009: val_loss did not improve from 0.00370\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0101 - root_mean_squared_error: 0.1002 - mae: 0.0631 - val_loss: 0.0052 - val_root_mean_squared_error: 0.0724 - val_mae: 0.0538\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00370\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 4s 22ms/step - loss: 0.0101 - root_mean_squared_error: 0.0993 - mae: 0.0634 - val_loss: 0.0053 - val_root_mean_squared_error: 0.0726 - val_mae: 0.0525\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00370\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0074 - root_mean_squared_error: 0.0857 - mae: 0.0562 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0555 - val_mae: 0.0399\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00370 to 0.00308, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0068 - root_mean_squared_error: 0.0821 - mae: 0.0526 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0569 - val_mae: 0.0407\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00308\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0049 - root_mean_squared_error: 0.0697 - mae: 0.0484 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0530 - val_mae: 0.0380\n",
            "\n",
            "Epoch 00014: val_loss improved from 0.00308 to 0.00281, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0055 - root_mean_squared_error: 0.0739 - mae: 0.0462 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0504 - val_mae: 0.0352\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00281 to 0.00254, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 4s 22ms/step - loss: 0.0046 - root_mean_squared_error: 0.0673 - mae: 0.0441 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0455 - val_mae: 0.0304\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00254 to 0.00207, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0042 - root_mean_squared_error: 0.0645 - mae: 0.0433 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0494 - val_mae: 0.0346\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00207\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0042 - root_mean_squared_error: 0.0649 - mae: 0.0424 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0300\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00207 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0045 - root_mean_squared_error: 0.0666 - mae: 0.0421 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0467 - val_mae: 0.0316\n",
            "\n",
            "Epoch 00019: val_loss did not improve from 0.00199\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0034 - root_mean_squared_error: 0.0586 - mae: 0.0400 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0449 - val_mae: 0.0298\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00199\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0035 - root_mean_squared_error: 0.0593 - mae: 0.0388 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0449 - val_mae: 0.0298\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00199\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0035 - root_mean_squared_error: 0.0593 - mae: 0.0384 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0459 - val_mae: 0.0306\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00199\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0036 - root_mean_squared_error: 0.0598 - mae: 0.0395 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0442 - val_mae: 0.0294\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00199 to 0.00195, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0033 - root_mean_squared_error: 0.0573 - mae: 0.0380 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0441 - val_mae: 0.0291\n",
            "\n",
            "Epoch 00024: val_loss improved from 0.00195 to 0.00194, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0042 - root_mean_squared_error: 0.0648 - mae: 0.0438 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0608 - val_mae: 0.0408\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00194\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0040 - root_mean_squared_error: 0.0632 - mae: 0.0433 - val_loss: 0.0032 - val_root_mean_squared_error: 0.0564 - val_mae: 0.0373\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00194\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0036 - root_mean_squared_error: 0.0596 - mae: 0.0401 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0451 - val_mae: 0.0301\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00194\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0032 - root_mean_squared_error: 0.0565 - mae: 0.0380 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0496 - val_mae: 0.0336\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00194\n",
            "Epoch 29/50\n",
            "208/208 [==============================] - 4s 21ms/step - loss: 0.0032 - root_mean_squared_error: 0.0563 - mae: 0.0378 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0449 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00029: val_loss did not improve from 0.00194\n",
            "120/120 [==============================] - 1s 4ms/step - loss: 0.0019 - root_mean_squared_error: 0.0441 - mae: 0.0291\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 30%|███       | 3/10 [08:14<21:33, 184.79s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 5, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 12s 40ms/step - loss: 0.2363 - root_mean_squared_error: 0.4626 - mae: 0.3199 - val_loss: 0.0228 - val_root_mean_squared_error: 0.1510 - val_mae: 0.1409\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.02281, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 8s 39ms/step - loss: 0.0460 - root_mean_squared_error: 0.2141 - mae: 0.1371 - val_loss: 0.0195 - val_root_mean_squared_error: 0.1397 - val_mae: 0.1212\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.02281 to 0.01951, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0336 - root_mean_squared_error: 0.1833 - mae: 0.1126 - val_loss: 0.0101 - val_root_mean_squared_error: 0.1007 - val_mae: 0.0810\n",
            "\n",
            "Epoch 00003: val_loss improved from 0.01951 to 0.01015, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0258 - root_mean_squared_error: 0.1603 - mae: 0.0992 - val_loss: 0.0112 - val_root_mean_squared_error: 0.1056 - val_mae: 0.0806\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01015\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0341 - root_mean_squared_error: 0.1837 - mae: 0.1029 - val_loss: 0.0078 - val_root_mean_squared_error: 0.0882 - val_mae: 0.0666\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01015 to 0.00777, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0223 - root_mean_squared_error: 0.1493 - mae: 0.0876 - val_loss: 0.0077 - val_root_mean_squared_error: 0.0880 - val_mae: 0.0688\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00777 to 0.00774, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0280 - root_mean_squared_error: 0.1661 - mae: 0.0928 - val_loss: 0.0061 - val_root_mean_squared_error: 0.0781 - val_mae: 0.0591\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00774 to 0.00609, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0216 - root_mean_squared_error: 0.1463 - mae: 0.0818 - val_loss: 0.0064 - val_root_mean_squared_error: 0.0801 - val_mae: 0.0598\n",
            "\n",
            "Epoch 00008: val_loss did not improve from 0.00609\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0187 - root_mean_squared_error: 0.1361 - mae: 0.0791 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0712 - val_mae: 0.0534\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00609 to 0.00507, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0218 - root_mean_squared_error: 0.1473 - mae: 0.0819 - val_loss: 0.0071 - val_root_mean_squared_error: 0.0844 - val_mae: 0.0647\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00507\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0165 - root_mean_squared_error: 0.1282 - mae: 0.0773 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0715 - val_mae: 0.0540\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00507\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0151 - root_mean_squared_error: 0.1229 - mae: 0.0705 - val_loss: 0.0038 - val_root_mean_squared_error: 0.0620 - val_mae: 0.0473\n",
            "\n",
            "Epoch 00012: val_loss improved from 0.00507 to 0.00385, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0114 - root_mean_squared_error: 0.1067 - mae: 0.0634 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0571 - val_mae: 0.0413\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00385 to 0.00326, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0097 - root_mean_squared_error: 0.0986 - mae: 0.0606 - val_loss: 0.0036 - val_root_mean_squared_error: 0.0598 - val_mae: 0.0429\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00326\n",
            "Epoch 15/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0114 - root_mean_squared_error: 0.1066 - mae: 0.0591 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0333\n",
            "\n",
            "Epoch 00015: val_loss improved from 0.00326 to 0.00237, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 16/50\n",
            "208/208 [==============================] - 10s 50ms/step - loss: 0.0094 - root_mean_squared_error: 0.0967 - mae: 0.0558 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0497 - val_mae: 0.0354\n",
            "\n",
            "Epoch 00016: val_loss did not improve from 0.00237\n",
            "Epoch 17/50\n",
            "208/208 [==============================] - 8s 39ms/step - loss: 0.0067 - root_mean_squared_error: 0.0818 - mae: 0.0511 - val_loss: 0.0025 - val_root_mean_squared_error: 0.0497 - val_mae: 0.0344\n",
            "\n",
            "Epoch 00017: val_loss did not improve from 0.00237\n",
            "Epoch 18/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0070 - root_mean_squared_error: 0.0834 - mae: 0.0503 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0487 - val_mae: 0.0338\n",
            "\n",
            "Epoch 00018: val_loss did not improve from 0.00237\n",
            "Epoch 19/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0058 - root_mean_squared_error: 0.0759 - mae: 0.0477 - val_loss: 0.0023 - val_root_mean_squared_error: 0.0476 - val_mae: 0.0326\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00237 to 0.00226, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 20/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0063 - root_mean_squared_error: 0.0792 - mae: 0.0474 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0457 - val_mae: 0.0311\n",
            "\n",
            "Epoch 00020: val_loss improved from 0.00226 to 0.00209, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 21/50\n",
            "208/208 [==============================] - 8s 37ms/step - loss: 0.0074 - root_mean_squared_error: 0.0860 - mae: 0.0493 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0314\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00209\n",
            "Epoch 22/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0048 - root_mean_squared_error: 0.0692 - mae: 0.0431 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0463 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00209\n",
            "Epoch 23/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0056 - root_mean_squared_error: 0.0747 - mae: 0.0457 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0300\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00209 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 24/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0064 - root_mean_squared_error: 0.0795 - mae: 0.0452 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0447 - val_mae: 0.0300\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00199\n",
            "Epoch 25/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0063 - root_mean_squared_error: 0.0791 - mae: 0.0491 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0530 - val_mae: 0.0361\n",
            "\n",
            "Epoch 00025: val_loss did not improve from 0.00199\n",
            "Epoch 26/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0047 - root_mean_squared_error: 0.0688 - mae: 0.0450 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0547 - val_mae: 0.0386\n",
            "\n",
            "Epoch 00026: val_loss did not improve from 0.00199\n",
            "Epoch 27/50\n",
            "208/208 [==============================] - 8s 36ms/step - loss: 0.0047 - root_mean_squared_error: 0.0684 - mae: 0.0441 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0461 - val_mae: 0.0319\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00199\n",
            "Epoch 28/50\n",
            "208/208 [==============================] - 7s 36ms/step - loss: 0.0044 - root_mean_squared_error: 0.0663 - mae: 0.0421 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0463 - val_mae: 0.0318\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00199\n",
            "120/120 [==============================] - 2s 7ms/step - loss: 0.0020 - root_mean_squared_error: 0.0446 - mae: 0.0300\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 40%|████      | 4/10 [12:11<20:03, 200.52s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 3, 'bs_double': 7, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "52/52 [==============================] - 8s 76ms/step - loss: 0.3731 - root_mean_squared_error: 0.5766 - mae: 0.3853 - val_loss: 0.0130 - val_root_mean_squared_error: 0.1141 - val_mae: 0.1025\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01303, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101128.hdf5\n",
            "Epoch 2/50\n",
            "52/52 [==============================] - 3s 64ms/step - loss: 0.0460 - root_mean_squared_error: 0.2145 - mae: 0.1392 - val_loss: 0.0171 - val_root_mean_squared_error: 0.1309 - val_mae: 0.1212\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01303\n",
            "Epoch 3/50\n",
            "52/52 [==============================] - 3s 61ms/step - loss: 0.0490 - root_mean_squared_error: 0.2209 - mae: 0.1278 - val_loss: 0.0208 - val_root_mean_squared_error: 0.1444 - val_mae: 0.1347\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01303\n",
            "Epoch 4/50\n",
            "52/52 [==============================] - 3s 61ms/step - loss: 0.0409 - root_mean_squared_error: 0.2017 - mae: 0.1201 - val_loss: 0.0224 - val_root_mean_squared_error: 0.1498 - val_mae: 0.1398\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.01303\n",
            "Epoch 5/50\n",
            "52/52 [==============================] - 3s 61ms/step - loss: 0.0388 - root_mean_squared_error: 0.1969 - mae: 0.1157 - val_loss: 0.0277 - val_root_mean_squared_error: 0.1663 - val_mae: 0.1552\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.01303\n",
            "Epoch 6/50\n",
            "52/52 [==============================] - 3s 60ms/step - loss: 0.0346 - root_mean_squared_error: 0.1853 - mae: 0.1065 - val_loss: 0.0289 - val_root_mean_squared_error: 0.1700 - val_mae: 0.1583\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.01303\n",
            "120/120 [==============================] - 2s 7ms/step - loss: 0.0130 - root_mean_squared_error: 0.1141 - mae: 0.1025\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 50%|█████     | 5/10 [12:40<12:25, 149.06s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 7, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "52/52 [==============================] - 6s 42ms/step - loss: 0.7356 - root_mean_squared_error: 0.8091 - mae: 0.5872 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0971 - val_mae: 0.0684\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.00944, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101128.hdf5\n",
            "Epoch 2/50\n",
            "52/52 [==============================] - 2s 29ms/step - loss: 0.0503 - root_mean_squared_error: 0.2238 - mae: 0.1540 - val_loss: 0.0102 - val_root_mean_squared_error: 0.1009 - val_mae: 0.0655\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.00944\n",
            "Epoch 3/50\n",
            "52/52 [==============================] - 1s 29ms/step - loss: 0.0361 - root_mean_squared_error: 0.1900 - mae: 0.1228 - val_loss: 0.0106 - val_root_mean_squared_error: 0.1030 - val_mae: 0.0659\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00944\n",
            "Epoch 4/50\n",
            "52/52 [==============================] - 2s 29ms/step - loss: 0.0318 - root_mean_squared_error: 0.1781 - mae: 0.1131 - val_loss: 0.0120 - val_root_mean_squared_error: 0.1094 - val_mae: 0.0699\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00944\n",
            "Epoch 5/50\n",
            "52/52 [==============================] - 1s 28ms/step - loss: 0.0267 - root_mean_squared_error: 0.1633 - mae: 0.1017 - val_loss: 0.0124 - val_root_mean_squared_error: 0.1114 - val_mae: 0.0732\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00944\n",
            "Epoch 6/50\n",
            "52/52 [==============================] - 2s 29ms/step - loss: 0.0228 - root_mean_squared_error: 0.1508 - mae: 0.0934 - val_loss: 0.0149 - val_root_mean_squared_error: 0.1221 - val_mae: 0.0863\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00944\n",
            "120/120 [==============================] - 1s 4ms/step - loss: 0.0094 - root_mean_squared_error: 0.0971 - mae: 0.0684\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 60%|██████    | 6/10 [12:56<07:16, 109.14s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 4, 'bs_double': 6, 'n_timewindow': 1.5}\n",
            "16\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 14s 82ms/step - loss: 0.2424 - root_mean_squared_error: 0.4698 - mae: 0.3055 - val_loss: 0.0116 - val_root_mean_squared_error: 0.1076 - val_mae: 0.0940\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01159, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 8s 75ms/step - loss: 0.0370 - root_mean_squared_error: 0.1922 - mae: 0.1258 - val_loss: 0.0145 - val_root_mean_squared_error: 0.1205 - val_mae: 0.1101\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.01159\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0414 - root_mean_squared_error: 0.2033 - mae: 0.1247 - val_loss: 0.0124 - val_root_mean_squared_error: 0.1112 - val_mae: 0.0987\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.01159\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0278 - root_mean_squared_error: 0.1659 - mae: 0.1015 - val_loss: 0.0106 - val_root_mean_squared_error: 0.1031 - val_mae: 0.0856\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.01159 to 0.01063, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 8s 76ms/step - loss: 0.0238 - root_mean_squared_error: 0.1541 - mae: 0.0938 - val_loss: 0.0104 - val_root_mean_squared_error: 0.1019 - val_mae: 0.0849\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.01063 to 0.01039, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0249 - root_mean_squared_error: 0.1573 - mae: 0.0933 - val_loss: 0.0102 - val_root_mean_squared_error: 0.1010 - val_mae: 0.0812\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.01039 to 0.01020, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 7/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0281 - root_mean_squared_error: 0.1664 - mae: 0.0939 - val_loss: 0.0096 - val_root_mean_squared_error: 0.0979 - val_mae: 0.0745\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.01020 to 0.00958, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 8/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0216 - root_mean_squared_error: 0.1465 - mae: 0.0880 - val_loss: 0.0093 - val_root_mean_squared_error: 0.0964 - val_mae: 0.0715\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00958 to 0.00929, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 9/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0216 - root_mean_squared_error: 0.1468 - mae: 0.0874 - val_loss: 0.0082 - val_root_mean_squared_error: 0.0908 - val_mae: 0.0675\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00929 to 0.00824, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 10/50\n",
            "104/104 [==============================] - 8s 74ms/step - loss: 0.0245 - root_mean_squared_error: 0.1566 - mae: 0.0925 - val_loss: 0.0085 - val_root_mean_squared_error: 0.0922 - val_mae: 0.0726\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00824\n",
            "Epoch 11/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0217 - root_mean_squared_error: 0.1468 - mae: 0.0868 - val_loss: 0.0080 - val_root_mean_squared_error: 0.0893 - val_mae: 0.0681\n",
            "\n",
            "Epoch 00011: val_loss improved from 0.00824 to 0.00798, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 12/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0225 - root_mean_squared_error: 0.1495 - mae: 0.0867 - val_loss: 0.0084 - val_root_mean_squared_error: 0.0915 - val_mae: 0.0709\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00798\n",
            "Epoch 13/50\n",
            "104/104 [==============================] - 8s 72ms/step - loss: 0.0250 - root_mean_squared_error: 0.1576 - mae: 0.0890 - val_loss: 0.0079 - val_root_mean_squared_error: 0.0890 - val_mae: 0.0670\n",
            "\n",
            "Epoch 00013: val_loss improved from 0.00798 to 0.00791, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 14/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0204 - root_mean_squared_error: 0.1426 - mae: 0.0854 - val_loss: 0.0084 - val_root_mean_squared_error: 0.0916 - val_mae: 0.0680\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00791\n",
            "Epoch 15/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0167 - root_mean_squared_error: 0.1292 - mae: 0.0799 - val_loss: 0.0080 - val_root_mean_squared_error: 0.0895 - val_mae: 0.0670\n",
            "\n",
            "Epoch 00015: val_loss did not improve from 0.00791\n",
            "Epoch 16/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0179 - root_mean_squared_error: 0.1337 - mae: 0.0809 - val_loss: 0.0069 - val_root_mean_squared_error: 0.0832 - val_mae: 0.0630\n",
            "\n",
            "Epoch 00016: val_loss improved from 0.00791 to 0.00692, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 17/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0190 - root_mean_squared_error: 0.1374 - mae: 0.0823 - val_loss: 0.0069 - val_root_mean_squared_error: 0.0832 - val_mae: 0.0629\n",
            "\n",
            "Epoch 00017: val_loss improved from 0.00692 to 0.00692, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 18/50\n",
            "104/104 [==============================] - 8s 74ms/step - loss: 0.0193 - root_mean_squared_error: 0.1388 - mae: 0.0830 - val_loss: 0.0066 - val_root_mean_squared_error: 0.0813 - val_mae: 0.0612\n",
            "\n",
            "Epoch 00018: val_loss improved from 0.00692 to 0.00661, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 19/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0187 - root_mean_squared_error: 0.1362 - mae: 0.0820 - val_loss: 0.0066 - val_root_mean_squared_error: 0.0811 - val_mae: 0.0611\n",
            "\n",
            "Epoch 00019: val_loss improved from 0.00661 to 0.00657, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 20/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0147 - root_mean_squared_error: 0.1209 - mae: 0.0776 - val_loss: 0.0083 - val_root_mean_squared_error: 0.0914 - val_mae: 0.0709\n",
            "\n",
            "Epoch 00020: val_loss did not improve from 0.00657\n",
            "Epoch 21/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0169 - root_mean_squared_error: 0.1297 - mae: 0.0792 - val_loss: 0.0087 - val_root_mean_squared_error: 0.0933 - val_mae: 0.0701\n",
            "\n",
            "Epoch 00021: val_loss did not improve from 0.00657\n",
            "Epoch 22/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0137 - root_mean_squared_error: 0.1168 - mae: 0.0716 - val_loss: 0.0070 - val_root_mean_squared_error: 0.0834 - val_mae: 0.0615\n",
            "\n",
            "Epoch 00022: val_loss did not improve from 0.00657\n",
            "Epoch 23/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0110 - root_mean_squared_error: 0.1049 - mae: 0.0648 - val_loss: 0.0052 - val_root_mean_squared_error: 0.0719 - val_mae: 0.0532\n",
            "\n",
            "Epoch 00023: val_loss improved from 0.00657 to 0.00516, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 24/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0117 - root_mean_squared_error: 0.1082 - mae: 0.0644 - val_loss: 0.0054 - val_root_mean_squared_error: 0.0733 - val_mae: 0.0557\n",
            "\n",
            "Epoch 00024: val_loss did not improve from 0.00516\n",
            "Epoch 25/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0097 - root_mean_squared_error: 0.0984 - mae: 0.0574 - val_loss: 0.0034 - val_root_mean_squared_error: 0.0580 - val_mae: 0.0421\n",
            "\n",
            "Epoch 00025: val_loss improved from 0.00516 to 0.00337, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 26/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0081 - root_mean_squared_error: 0.0901 - mae: 0.0552 - val_loss: 0.0031 - val_root_mean_squared_error: 0.0558 - val_mae: 0.0410\n",
            "\n",
            "Epoch 00026: val_loss improved from 0.00337 to 0.00311, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 27/50\n",
            "104/104 [==============================] - 8s 74ms/step - loss: 0.0069 - root_mean_squared_error: 0.0829 - mae: 0.0497 - val_loss: 0.0033 - val_root_mean_squared_error: 0.0571 - val_mae: 0.0419\n",
            "\n",
            "Epoch 00027: val_loss did not improve from 0.00311\n",
            "Epoch 28/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0070 - root_mean_squared_error: 0.0836 - mae: 0.0500 - val_loss: 0.0034 - val_root_mean_squared_error: 0.0585 - val_mae: 0.0422\n",
            "\n",
            "Epoch 00028: val_loss did not improve from 0.00311\n",
            "Epoch 29/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0074 - root_mean_squared_error: 0.0861 - mae: 0.0501 - val_loss: 0.0029 - val_root_mean_squared_error: 0.0539 - val_mae: 0.0392\n",
            "\n",
            "Epoch 00029: val_loss improved from 0.00311 to 0.00290, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 30/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0073 - root_mean_squared_error: 0.0853 - mae: 0.0508 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0522 - val_mae: 0.0369\n",
            "\n",
            "Epoch 00030: val_loss improved from 0.00290 to 0.00273, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 31/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0057 - root_mean_squared_error: 0.0751 - mae: 0.0455 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0485 - val_mae: 0.0341\n",
            "\n",
            "Epoch 00031: val_loss improved from 0.00273 to 0.00235, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 32/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0052 - root_mean_squared_error: 0.0721 - mae: 0.0441 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0530 - val_mae: 0.0368\n",
            "\n",
            "Epoch 00032: val_loss did not improve from 0.00235\n",
            "Epoch 33/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0051 - root_mean_squared_error: 0.0715 - mae: 0.0454 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0526 - val_mae: 0.0368\n",
            "\n",
            "Epoch 00033: val_loss did not improve from 0.00235\n",
            "Epoch 34/50\n",
            "104/104 [==============================] - 8s 75ms/step - loss: 0.0050 - root_mean_squared_error: 0.0706 - mae: 0.0424 - val_loss: 0.0024 - val_root_mean_squared_error: 0.0489 - val_mae: 0.0339\n",
            "\n",
            "Epoch 00034: val_loss did not improve from 0.00235\n",
            "Epoch 35/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0049 - root_mean_squared_error: 0.0701 - mae: 0.0437 - val_loss: 0.0027 - val_root_mean_squared_error: 0.0524 - val_mae: 0.0369\n",
            "\n",
            "Epoch 00035: val_loss did not improve from 0.00235\n",
            "Epoch 36/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0050 - root_mean_squared_error: 0.0709 - mae: 0.0433 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0454 - val_mae: 0.0309\n",
            "\n",
            "Epoch 00036: val_loss improved from 0.00235 to 0.00206, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 37/50\n",
            "104/104 [==============================] - 8s 74ms/step - loss: 0.0048 - root_mean_squared_error: 0.0690 - mae: 0.0416 - val_loss: 0.0022 - val_root_mean_squared_error: 0.0464 - val_mae: 0.0310\n",
            "\n",
            "Epoch 00037: val_loss did not improve from 0.00206\n",
            "Epoch 38/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0047 - root_mean_squared_error: 0.0682 - mae: 0.0417 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0454 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00038: val_loss did not improve from 0.00206\n",
            "Epoch 39/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0052 - root_mean_squared_error: 0.0720 - mae: 0.0431 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0463 - val_mae: 0.0308\n",
            "\n",
            "Epoch 00039: val_loss did not improve from 0.00206\n",
            "Epoch 40/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0045 - root_mean_squared_error: 0.0670 - mae: 0.0402 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0449 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00040: val_loss improved from 0.00206 to 0.00202, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 41/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0048 - root_mean_squared_error: 0.0694 - mae: 0.0418 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0451 - val_mae: 0.0297\n",
            "\n",
            "Epoch 00041: val_loss did not improve from 0.00202\n",
            "Epoch 42/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0038 - root_mean_squared_error: 0.0613 - mae: 0.0382 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0451 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00042: val_loss did not improve from 0.00202\n",
            "Epoch 43/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0042 - root_mean_squared_error: 0.0649 - mae: 0.0398 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0451 - val_mae: 0.0299\n",
            "\n",
            "Epoch 00043: val_loss did not improve from 0.00202\n",
            "Epoch 44/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0037 - root_mean_squared_error: 0.0606 - mae: 0.0387 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0458 - val_mae: 0.0305\n",
            "\n",
            "Epoch 00044: val_loss did not improve from 0.00202\n",
            "Epoch 45/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0043 - root_mean_squared_error: 0.0654 - mae: 0.0399 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0294\n",
            "\n",
            "Epoch 00045: val_loss improved from 0.00202 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 46/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0038 - root_mean_squared_error: 0.0613 - mae: 0.0370 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0446 - val_mae: 0.0294\n",
            "\n",
            "Epoch 00046: val_loss improved from 0.00199 to 0.00199, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 47/50\n",
            "104/104 [==============================] - 8s 72ms/step - loss: 0.0037 - root_mean_squared_error: 0.0606 - mae: 0.0375 - val_loss: 0.0021 - val_root_mean_squared_error: 0.0453 - val_mae: 0.0300\n",
            "\n",
            "Epoch 00047: val_loss did not improve from 0.00199\n",
            "Epoch 48/50\n",
            "104/104 [==============================] - 8s 75ms/step - loss: 0.0035 - root_mean_squared_error: 0.0592 - mae: 0.0374 - val_loss: 0.0020 - val_root_mean_squared_error: 0.0450 - val_mae: 0.0298\n",
            "\n",
            "Epoch 00048: val_loss did not improve from 0.00199\n",
            "Epoch 49/50\n",
            "104/104 [==============================] - 8s 73ms/step - loss: 0.0036 - root_mean_squared_error: 0.0598 - mae: 0.0385 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0550 - val_mae: 0.0393\n",
            "\n",
            "Epoch 00049: val_loss did not improve from 0.00199\n",
            "Epoch 50/50\n",
            "104/104 [==============================] - 7s 72ms/step - loss: 0.0039 - root_mean_squared_error: 0.0626 - mae: 0.0412 - val_loss: 0.0034 - val_root_mean_squared_error: 0.0582 - val_mae: 0.0428\n",
            "\n",
            "Epoch 00050: val_loss did not improve from 0.00199\n",
            "120/120 [==============================] - 2s 10ms/step - loss: 0.0020 - root_mean_squared_error: 0.0446 - mae: 0.0294\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 70%|███████   | 7/10 [19:58<10:08, 203.00s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 9, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "13/13 [==============================] - 4s 116ms/step - loss: 1.4694 - root_mean_squared_error: 1.1886 - mae: 0.9511 - val_loss: 0.0119 - val_root_mean_squared_error: 0.1092 - val_mae: 0.0682\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01193, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101512.hdf5\n",
            "Epoch 2/50\n",
            "13/13 [==============================] - 1s 92ms/step - loss: 0.1897 - root_mean_squared_error: 0.4343 - mae: 0.3174 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0969 - val_mae: 0.0692\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01193 to 0.00940, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data101512.hdf5\n",
            "Epoch 3/50\n",
            "13/13 [==============================] - 1s 65ms/step - loss: 0.0770 - root_mean_squared_error: 0.2775 - mae: 0.2106 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0970 - val_mae: 0.0724\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00940\n",
            "Epoch 4/50\n",
            "13/13 [==============================] - 1s 64ms/step - loss: 0.0534 - root_mean_squared_error: 0.2309 - mae: 0.1614 - val_loss: 0.0094 - val_root_mean_squared_error: 0.0971 - val_mae: 0.0687\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00940\n",
            "Epoch 5/50\n",
            "13/13 [==============================] - 1s 66ms/step - loss: 0.0377 - root_mean_squared_error: 0.1941 - mae: 0.1348 - val_loss: 0.0097 - val_root_mean_squared_error: 0.0986 - val_mae: 0.0663\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00940\n",
            "Epoch 6/50\n",
            "13/13 [==============================] - 1s 64ms/step - loss: 0.0361 - root_mean_squared_error: 0.1900 - mae: 0.1273 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0994 - val_mae: 0.0658\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00940\n",
            "Epoch 7/50\n",
            "13/13 [==============================] - 1s 65ms/step - loss: 0.0356 - root_mean_squared_error: 0.1887 - mae: 0.1172 - val_loss: 0.0099 - val_root_mean_squared_error: 0.0997 - val_mae: 0.0657\n",
            "\n",
            "Epoch 00007: val_loss did not improve from 0.00940\n",
            "120/120 [==============================] - 1s 4ms/step - loss: 0.0094 - root_mean_squared_error: 0.0969 - mae: 0.0692\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 80%|████████  | 8/10 [20:10<04:51, 145.84s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 128, 'n_layers': 2, 'bs_double': 5, 'n_timewindow': 2}\n",
            "128\n",
            "Epoch 1/50\n",
            "208/208 [==============================] - 16s 63ms/step - loss: 0.4277 - root_mean_squared_error: 0.6212 - mae: 0.4450 - val_loss: 0.0191 - val_root_mean_squared_error: 0.1380 - val_mae: 0.1027\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.01905, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 2/50\n",
            "208/208 [==============================] - 12s 60ms/step - loss: 0.0489 - root_mean_squared_error: 0.2210 - mae: 0.1643 - val_loss: 0.0093 - val_root_mean_squared_error: 0.0964 - val_mae: 0.0713\n",
            "\n",
            "Epoch 00002: val_loss improved from 0.01905 to 0.00930, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 3/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0339 - root_mean_squared_error: 0.1841 - mae: 0.1352 - val_loss: 0.0139 - val_root_mean_squared_error: 0.1180 - val_mae: 0.0977\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00930\n",
            "Epoch 4/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0272 - root_mean_squared_error: 0.1647 - mae: 0.1174 - val_loss: 0.0058 - val_root_mean_squared_error: 0.0759 - val_mae: 0.0564\n",
            "\n",
            "Epoch 00004: val_loss improved from 0.00930 to 0.00575, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 5/50\n",
            "208/208 [==============================] - 12s 60ms/step - loss: 0.0212 - root_mean_squared_error: 0.1454 - mae: 0.1007 - val_loss: 0.0055 - val_root_mean_squared_error: 0.0742 - val_mae: 0.0574\n",
            "\n",
            "Epoch 00005: val_loss improved from 0.00575 to 0.00551, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 6/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0186 - root_mean_squared_error: 0.1363 - mae: 0.0906 - val_loss: 0.0051 - val_root_mean_squared_error: 0.0713 - val_mae: 0.0542\n",
            "\n",
            "Epoch 00006: val_loss improved from 0.00551 to 0.00509, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 7/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0162 - root_mean_squared_error: 0.1272 - mae: 0.0868 - val_loss: 0.0037 - val_root_mean_squared_error: 0.0610 - val_mae: 0.0448\n",
            "\n",
            "Epoch 00007: val_loss improved from 0.00509 to 0.00372, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 8/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0184 - root_mean_squared_error: 0.1354 - mae: 0.0908 - val_loss: 0.0030 - val_root_mean_squared_error: 0.0548 - val_mae: 0.0405\n",
            "\n",
            "Epoch 00008: val_loss improved from 0.00372 to 0.00300, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 9/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0150 - root_mean_squared_error: 0.1225 - mae: 0.0805 - val_loss: 0.0028 - val_root_mean_squared_error: 0.0529 - val_mae: 0.0385\n",
            "\n",
            "Epoch 00009: val_loss improved from 0.00300 to 0.00280, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10132.hdf5\n",
            "Epoch 10/50\n",
            "208/208 [==============================] - 12s 60ms/step - loss: 0.0163 - root_mean_squared_error: 0.1277 - mae: 0.0834 - val_loss: 0.0131 - val_root_mean_squared_error: 0.1144 - val_mae: 0.0949\n",
            "\n",
            "Epoch 00010: val_loss did not improve from 0.00280\n",
            "Epoch 11/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0176 - root_mean_squared_error: 0.1324 - mae: 0.0942 - val_loss: 0.0060 - val_root_mean_squared_error: 0.0773 - val_mae: 0.0605\n",
            "\n",
            "Epoch 00011: val_loss did not improve from 0.00280\n",
            "Epoch 12/50\n",
            "208/208 [==============================] - 12s 57ms/step - loss: 0.0155 - root_mean_squared_error: 0.1243 - mae: 0.0875 - val_loss: 0.0041 - val_root_mean_squared_error: 0.0644 - val_mae: 0.0499\n",
            "\n",
            "Epoch 00012: val_loss did not improve from 0.00280\n",
            "Epoch 13/50\n",
            "208/208 [==============================] - 12s 58ms/step - loss: 0.0103 - root_mean_squared_error: 0.1015 - mae: 0.0704 - val_loss: 0.0047 - val_root_mean_squared_error: 0.0685 - val_mae: 0.0527\n",
            "\n",
            "Epoch 00013: val_loss did not improve from 0.00280\n",
            "Epoch 14/50\n",
            "208/208 [==============================] - 12s 59ms/step - loss: 0.0106 - root_mean_squared_error: 0.1027 - mae: 0.0715 - val_loss: 0.0039 - val_root_mean_squared_error: 0.0622 - val_mae: 0.0484\n",
            "\n",
            "Epoch 00014: val_loss did not improve from 0.00280\n",
            "120/120 [==============================] - 2s 12ms/step - loss: 0.0028 - root_mean_squared_error: 0.0529 - mae: 0.0385\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\r 90%|█████████ | 9/10 [23:23<02:39, 159.81s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "{'n_neurons': 16, 'n_layers': 2, 'bs_double': 6, 'n_timewindow': 2}\n",
            "16\n",
            "Epoch 1/50\n",
            "104/104 [==============================] - 6s 32ms/step - loss: 0.5187 - root_mean_squared_error: 0.6640 - mae: 0.4566 - val_loss: 0.0100 - val_root_mean_squared_error: 0.0999 - val_mae: 0.0658\n",
            "\n",
            "Epoch 00001: val_loss improved from inf to 0.00998, saving model to /content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10164.hdf5\n",
            "Epoch 2/50\n",
            "104/104 [==============================] - 2s 23ms/step - loss: 0.0406 - root_mean_squared_error: 0.2014 - mae: 0.1394 - val_loss: 0.0128 - val_root_mean_squared_error: 0.1133 - val_mae: 0.0726\n",
            "\n",
            "Epoch 00002: val_loss did not improve from 0.00998\n",
            "Epoch 3/50\n",
            "104/104 [==============================] - 2s 24ms/step - loss: 0.0337 - root_mean_squared_error: 0.1833 - mae: 0.1160 - val_loss: 0.0136 - val_root_mean_squared_error: 0.1168 - val_mae: 0.0799\n",
            "\n",
            "Epoch 00003: val_loss did not improve from 0.00998\n",
            "Epoch 4/50\n",
            "104/104 [==============================] - 2s 24ms/step - loss: 0.0243 - root_mean_squared_error: 0.1556 - mae: 0.1001 - val_loss: 0.0181 - val_root_mean_squared_error: 0.1347 - val_mae: 0.1019\n",
            "\n",
            "Epoch 00004: val_loss did not improve from 0.00998\n",
            "Epoch 5/50\n",
            "104/104 [==============================] - 2s 24ms/step - loss: 0.0235 - root_mean_squared_error: 0.1530 - mae: 0.0921 - val_loss: 0.0168 - val_root_mean_squared_error: 0.1295 - val_mae: 0.1032\n",
            "\n",
            "Epoch 00005: val_loss did not improve from 0.00998\n",
            "Epoch 6/50\n",
            "104/104 [==============================] - 2s 24ms/step - loss: 0.0185 - root_mean_squared_error: 0.1357 - mae: 0.0822 - val_loss: 0.0104 - val_root_mean_squared_error: 0.1021 - val_mae: 0.0812\n",
            "\n",
            "Epoch 00006: val_loss did not improve from 0.00998\n",
            "120/120 [==============================] - 1s 5ms/step - loss: 0.0100 - root_mean_squared_error: 0.0999 - mae: 0.0658\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "100%|██████████| 10/10 [23:44<00:00, 142.46s/it]"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "time: 3h 15min 13s (started: 2021-01-25 22:38:27 +00:00)\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "tAq7A8uSAMMG",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ddd8edf9-942b-4dc0-9116-62ea23780819"
      },
      "source": [
        "rmse, ga_network"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "([(0.042826101183891296,),\n",
              "  (0.04340127110481262,),\n",
              "  (0.04405916854739189,),\n",
              "  (0.044567640870809555,),\n",
              "  (0.04457038640975952,),\n",
              "  (0.052936770021915436,),\n",
              "  (0.09692955762147903,),\n",
              "  (0.09713941067457199,),\n",
              "  (0.09989364445209503,),\n",
              "  (0.11413893848657608,)],\n",
              " [{'bs_double': 6, 'n_layers': 3, 'n_neurons': 16, 'n_timewindow': 2},\n",
              "  {'bs_double': 5, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 1.5},\n",
              "  {'bs_double': 5, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 2},\n",
              "  {'bs_double': 6, 'n_layers': 4, 'n_neurons': 16, 'n_timewindow': 1.5},\n",
              "  {'bs_double': 5, 'n_layers': 3, 'n_neurons': 16, 'n_timewindow': 2},\n",
              "  {'bs_double': 5, 'n_layers': 2, 'n_neurons': 128, 'n_timewindow': 2},\n",
              "  {'bs_double': 9, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 2},\n",
              "  {'bs_double': 7, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 2},\n",
              "  {'bs_double': 6, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 2},\n",
              "  {'bs_double': 7, 'n_layers': 3, 'n_neurons': 16, 'n_timewindow': 2}])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 69
        },
        {
          "output_type": "stream",
          "text": [
            "time: 6.58 ms (started: 2021-01-26 01:53:40 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "MHVKn2mntc5z",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "c90eedd6-9a22-494f-901c-228074095a81"
      },
      "source": [
        "#assign the first order as the best model\n",
        "best_model = ga_network[0]\n",
        "best_model"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'bs_double': 4, 'n_layers': 2, 'n_neurons': 32, 'n_timewindow': 0.5}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 71
        },
        {
          "output_type": "stream",
          "text": [
            "time: 5.71 ms (started: 2021-01-14 16:27:25 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "D_sx3xJ9B0Ab",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "188de8d5-1515-4963-deff-6260cd8037b7"
      },
      "source": [
        "#best_model ={'bs_double': 4, 'n_layers': 2, 'n_neurons': 32, 'n_timewindow': 0.5}#{'bs_double': 0, 'n_layers': 2, 'n_neurons': 16, 'n_timewindow': 1}\n",
        "best_model"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'bs_double': 4, 'n_layers': 2, 'n_neurons': 32, 'n_timewindow': 0.5}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 120
        },
        {
          "output_type": "stream",
          "text": [
            "time: 7.43 ms (started: 2021-01-15 17:38:02 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WnG601CDbinI",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "cb337edf-8864-430d-a55c-7bc8f9e78169"
      },
      "source": [
        "best_model['n_timewindow']"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.5"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 121
        },
        {
          "output_type": "stream",
          "text": [
            "time: 3.37 ms (started: 2021-01-15 17:38:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cpm7PWFqmdTw",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "4f21c5af-d001-4815-cc55-c9a8c95af545"
      },
      "source": [
        "bs = 2**best_model['bs_double']\n",
        "bs_name = str(bs)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 1.26 ms (started: 2021-01-15 17:38:05 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "iUk7LXJUEEU2",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e802dde9-c030-4aeb-db27-a648c0213252"
      },
      "source": [
        "look_back = int(np.ceil(size_trip*best_model['n_timewindow']))\n",
        "X_train, y_train, X_val, y_val, X_test, y_test, split_index_test, scaler = df_to_rnn_scaling(df=data, look_back=look_back, target_column='Driving_time_s')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 37.7 ms (started: 2021-01-15 17:38:08 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "KVNznwrBvYOm",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ce9b2840-e6f2-4e9d-fe20-45e0f2eb502d"
      },
      "source": [
        "print('X_train_shape: ', X_train.shape,' ', 'X_val_shape: ', X_val.shape,' ', 'X_test_shape: ', X_test.shape)\n",
        "print('y_train_shape: ', y_train.shape,' ', 'y_val_shape: ', y_val.shape,' ', 'y_test_shape: ', y_test.shape)\n",
        "print(look_back, num_features)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "X_train_shape:  (4724, 5, 23)   X_val_shape:  (1516, 5, 23)   X_test_shape:  (436, 5, 23)\n",
            "y_train_shape:  (4724,)   y_val_shape:  (1516,)   y_test_shape:  (436,)\n",
            "5 23\n",
            "time: 3.28 ms (started: 2021-01-15 17:38:10 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OCGpkf1xbJj3",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "26189608-78fd-49c1-bda2-90e252953ea2"
      },
      "source": [
        "LSTM_train(X_train, y_train, X_test, y_test,X_test,y_test,n_neurons= best_model['n_neurons'], n_layers= best_model['n_layers'], bs_double= best_model['bs_double'], look_back=look_back)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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mF2qDViStuzWi+CFB/P7mrseACd+YauHnHnmmXzoQx/i/e9/PwA33ngjt912Gx/4wAdoampixYoVHHHEEZx00klExGZf4+tf/zp1dXU88sgjzJ8/n0MOOWTTvs9//vO0tLTQ29vLcccdx/z58/nABz7AV77yFW6//XbGjRv3ite67777uO6667jnnntIKXH44Yfz+te/nubmZp544gl+8IMfcPXVV3PGGWdw8803c8455+zkH0lD0b8W1vI1XUwYu0uBq5FUFLxuASN/3bKDNUBLfcaAJanoHHzwwSxbtoznnnuOBx54gObmZnbddVc+9alPceCBB3L88cezZMkSli5dusXX+P3vf7/pgnHggQdy4IEHbtp34403csghh3DwwQezYMECHn744a3Wc+edd/L2t7+d+vp6GhoaeMc73sEdd9wBwOTJk5kxYwYAhx56KIsWLdrJT6+hci0sScWi3K9bdrAGMGBJ2qptfGM3nE4//XRuuukmXnjhBc4880y+//3vs3z5cu677z6qq6uZNGkSGzZs//9YP/3003z5y19m7ty5NDc3c9555+3Q6/SrqanZ9LiystIhgiOoLdfB8j4sSZt43dqm4bhu2cEaoLnOgCWpOJ155pnccMMN3HTTTZx++um89NJLtLW1UV1dze23385f/vKXrZ5/zDHHcP311wPw0EMPMX/+fABWr15NfX09Y8aMYenSpdx6662bzmlsbKSzs/NVr3X00Ufzk5/8hHXr1rF27Vp+/OMfc/TRR+fx02pHvNzBciZBSYVXztctO1gDtNZnmL/YKYglFZ/p06fT2dnJhAkT2G233XjnO9/J2972Ng444ABmzpzJfvvtt9Xz3/e+9/Hud7+bqVOnMnXqVA499FAADjroIA4++GD2228/9thjD4488shN51xwwQXMnj2b3Xffndtvv33T9kMOOYTzzjuPWbNmAXD++edz8MEHOxywwFrqMlRVhEMEJRWFcr5uRUppWF54R82cOTNta4774fKFWx/lmjuf4vHPnbjFG+4klZdHHnmEqVOnFrqMUWdzf9eIuC+lNLNAJe2wQl63Bvurf/0fXvfacfz7GQcVuhRJBeJ1a3hsz3XLIYIDtNZn6O5NdHb1FLoUSZK2W1tTLc+sXFvoMiSprBmwBmjOLTa8yvuwJEkl6A37jmfuolU8uXxNoUuRpLJlwBqg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+2cF634DfNI5tyx4+J3485a2B61I0aqpCj/4w7/jw0kV8HUgzTnXiB8M4wGgDj+4wmNReNorgbXBaH7X40dIxDk3H7gFP+jFquA60i+AdnzYvBs/UEWXp4Gn8C0964BWdt+V7pP4EPke/vU9SNA1Ergj2Odi4E3g4UG+tl3tc7cG8TkQERERGdLMOfW2ERmqzMwB05xzqxJdi4iIiIjsnlqwREREREREokQBS4YdM5tofsLh/i6DGYwh5oIJcvur74pE17avdvHeH7/7R4uIiIgkN3URFBERERERiRK1YImIiIiIiETJkJsHq7S01E2aNCnRZYiISJwtWrRom3OuLNF1iIiI7IshF7AmTZrEwoULE12GiIjEmZmtS3QNIiIi+0pdBEVERERERKJEAUtERERERCRKFLBERERERESiRAFLREREREQkShSwREREREREokQBS0REREREJEoUsERERERERKJEAUtERERERCRKFLBERERERESiRAFLREREREQkShSwREREREREokQBS0REREREJEoUsERERERERKIkKQOWc46OznCiyxARERERkRSTlAHrxJuf57t/W5roMkREREREJMUkZcAqzMlgY31rossQEREREZEUk5QBa0xxDpsUsEREREREJM6SMmCVF+WwuUEBS0RERERE4ispA1ZFUQ51LR20dnQmuhQREREREUkhyRmwinMA1IolIiIiIiJxldQBS+dhiYiIiIhIPCVnwCoKApZasEREREREJI6SM2CpBUtERERERBIgKQNWYU4m+VnpasESEREREZG4SsqABVBerKHaRUREREQkvpI2YI0pzmGjugiKiIiIiEgcJW3AKi/KYbMCloiIiIiIxFHSBqyKohy2NLbRGXaJLkVERERERFJE0gasMcU5hMKOmqa2RJciIiIiIiIpImkDVrnmwhIRERERkThL2oClubBERERERCTekj9gqQVLRERERETiJGkDVml+NhlpphYsERERERGJm0EFLDM708yWm9kqM/tWP+uvN7N3zOxtM3vZzGZGrPt28LjlZnZGNIvflbQ0Y3RhtlqwREREREQkbnYbsMwsHfg1cBYwE/hYZIAK/Nk5N8s5dxjwE+DnwWNnApcDBwFnAr8J9hcXFcU5asESEREREZG4GUwL1pHAKudcpXOuHbgPuCByA+dcQ8TdfKBr8qkLgPucc23OuTXAqmB/cVFRnKMWLBERERERiZvBBKxxQFXE/epgWS9mdoOZrca3YH1xTx4bK+VFvgXLOU02LCIiIiIisRe1QS6cc792zk0Fvgl8Z08ea2bXmdlCM1u4devWaJXEmOIcWto7aWwLRW2fIiIiIiIiAxlMwFoPTIi4Pz5YNpD7gAv35LHOududc3Odc3PLysoGUdLgdE02vFnnYYmIiIiISBwMJmC9AUwzs8lmloUftOKxyA3MbFrE3XOAlcHtx4DLzSzbzCYD04DX973swako0lxYIiIiIiISPxm728A5FzKzLwBPA+nAXc65d83sJmChc+4x4AtmdirQAdQBVwWPfdfMHgDeA0LADc65zhi9lp2MKc4FYKNasEREREREJA52G7AAnHPzgHl9ln034vaXdvHYHwA/2NsC98XoomxAXQRFRERERCQ+ojbIxVCUk5nOiLxMdREUEREREZG4SOqABVBRnKvJhkVEREREJC6SP2AVZasFS0RERERE4iL5A1ZxDpsVsEREREREJA6SP2AV5bKtqZ22UNwGLxQRERERkRSV/AGr2I8kuKWhLcGViIiIiIhIskv6gFUeTDasboIiIiIiIhJrSR+wNNmwiIiIiIjES9IHrAq1YImIiIiISJwkfcAqys0gJzNNc2GJiIiIiEjMJX3AMjPGFOeyUS1YIiIiIiISY0kfsADKi7LZrBYsERERERGJsZQIWBVFOWxSC5aIiIiIiMRYagSs4lw2N7QSDrtElyIiIiIiIkksNQJWUTYdnY7alvZElyIiIiIiIkksNQJWsR+qXSMJioiIiIhILKVIwPKTDStgiYiIiIhILKVGwAomG9ZAFyIiIiIiEkspEbBKC7JIM9isgCUiIiIiIjGUEgErIz2N0YU5bFQXQRERERERiaGUCFgA5cU5asESEREREZGYSpmAVVGUrUEuREREREQkplImYI0pzlXAEhERERGRmEqZgFVelENjW4jmtlCiSxERERERkSSVMgGrojgb0FDtIiIiIiISO6kTsIo02bCIiIiIiMRW6gSs4mCyYQUsERERERGJkdQJWEVBwFIXQRERERERiZGUCVi5WekU52aqBUtERERERGImZQIW+FYstWCJiIiIiEispFTAKi/OYbMCloiIiIiIxEhKBawxRTlsVBdBERERERGJkZQKWOXFOWxraqOjM5zoUkRE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hz/knHPO2em4BQsWcNZZZzFr1iy2bNnCl7/8ZWbMmMGhhx7Kli1btu939dVXM3nyZLZs2cK4ceO46aabuOWWW6ioqOCUU06hW7duTJw4kf79+1NeXk63bt345S9/yd133w3AlVdeyQ033MCCBQs444wzOOGEE3j99dfp3bs3TzzxBO3bt0/tPZMkKYPZgrUH1586iPWVNfz5jY/SXYqkNuqiiy7ioYce2v7+oYce4vLLL+exxx5j6tSpTJw4ke9+97vEGHd5jt/97ncUFRXx7rvvctNNNzFlypTt2370ox9RXl7OzJkzeemll5g5cybf/OY36dWrFxMnTmTixIk7nWvKlCn86U9/4s0332TSpEncdddd2+fJmjNnDtdeey2zZ8+mc+fOPPLIIym+G5IkZTZbsPZgSJ8SRh/SnT++Op8vH9+fonbeMqnN2kNLU3MZMWIEK1asoKKigpUrV1JaWkpZWRnf/va3efnll8nJyWHJkiUsX76csrKyRs/x8ssv881vfhOAoUOHMnTo0O3bHnroIe68805qampYunQp77zzzk7bG3r11Vc577zz6NChAwDnn38+r7zyCmPHjmXAgAEMHz4cgJEjR7JgwYIU3QVJkloHW7Ca4PpTB7F601buf3NhukuR1EZdcMEFjB8/ngcffJCLLrqI++67j5UrVzJlyhSmT59Ojx49qKzc+1FP58+fz89//nOef/55Zs6cyec///l9Os82BQUF25dzc3OpqanZ53NJktQaGbCaYGS/Uj49sCt3vPwhldW16S5HUht00UUX8cADDzB+/HguuOAC1q1bxwEHHEB+fj4TJ07ko4923435pJNO4v777wdg1qxZzJw5E4D169fToUMHSkpKWL58OU8//fT2Yzp16sSGDRs+ca4TTzyRxx9/nM2bN7Np0yYee+wxTjzxxBR+WkmSWi8DVhNdf+ogVm6o4sHJi9JdiqQ26PDDD2fDhg307t2bnj17ctlll1FeXs6QIUP485//zKGHHrrb46+++mo2btzI4MGD+d73vsfIkSMBGDZsGCNGjODQQw/l0ksv5fjjj99+zFVXXcWYMWM45ZRTdjrXkUceyRVXXMHRRx/NMcccw5VXXsmIESNS/6ElSWqFwu4eik6HUaNGxT3NzZIOMUYu+P0bLFm7hZf+5RTa5ZlNpbbg3XffZfDgwekuI+s0dl9D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\n",
            "text/plain": [
              "<Figure size 864x864 with 4 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        },
        {
          "output_type": "stream",
          "text": [
            "Loss\n",
            "\ttraining         \t (min:    0.005, max:    0.100, cur:    0.005)\n",
            "\tvalidation       \t (min:    0.003, max:    0.012, cur:    0.004)\n",
            "mae\n",
            "\ttraining         \t (min:    0.051, max:    0.231, cur:    0.051)\n",
            "\tvalidation       \t (min:    0.041, max:    0.080, cur:    0.043)\n",
            "root_mean_squared_error\n",
            "\ttraining         \t (min:    0.070, max:    0.317, cur:    0.070)\n",
            "\tvalidation       \t (min:    0.059, max:    0.108, cur:    0.060)\n",
            "14/14 [==============================] - 1s 2ms/step - loss: 0.0035 - root_mean_squared_error: 0.0591 - mae: 0.0417\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(0.059139613062143326,)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 125
        },
        {
          "output_type": "stream",
          "text": [
            "time: 1min 7s (started: 2021-01-15 17:38:11 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Xp-YfPAuAwDg"
      },
      "source": [
        "# Cross validate on the test set"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0quBw7k4_Pyn",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "c3f8ee04-8a69-47f9-8c85-c7dc40562d89"
      },
      "source": [
        "'''\n",
        "#set learning rate and optimizer\n",
        "lr=1.e-3\n",
        "n_steps=2000\n",
        "global_step=1\n",
        "LR = keras.experimental.CosineDecayRestarts(\n",
        "    initial_learning_rate=lr,\n",
        "    first_decay_steps=n_steps,\n",
        "    t_mul= 1.5,\n",
        "    m_mul= 1,\n",
        "    alpha=0.1,\n",
        "    name=None\n",
        ")\n",
        "adam = Adam(learning_rate=LR) #, weight_decay=1e-5)\n",
        "'''"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "'\\n#set learning rate and optimizer\\nlr=1.e-3\\nn_steps=2000\\nglobal_step=1\\nLR = keras.experimental.CosineDecayRestarts(\\n    initial_learning_rate=lr,\\n    first_decay_steps=n_steps,\\n    t_mul= 1.5,\\n    m_mul= 1,\\n    alpha=0.1,\\n    name=None\\n)\\nadam = Adam(learning_rate=LR) #, weight_decay=1e-5)\\n'"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 126
        },
        {
          "output_type": "stream",
          "text": [
            "time: 7.91 ms (started: 2021-01-15 17:43:01 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "IfHfr-s9aE1_",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "26f1cf1c-e6f2-4548-8a18-e797a0e00120"
      },
      "source": [
        "%time\n",
        "from keras.models import load_model\n",
        "\n",
        "# Load the saved model\n",
        "#model = load_model('/content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_data10116.hdf5')\n",
        "model = load_model(\"/content/drive/My Drive/Colab Notebooks/Thesis/best model/LSTMGA_update_best_mse_\"+path_end+bs_name+\".hdf5\") # Gave an error when loading without 'custom_objects'.. fixed by https://github.com/keras-team/keras/issues/3911\n",
        "\n",
        "# Compile with the same settings as it has been saved with earlier\n",
        "#model.compile(loss=\"mean_squared_error\", optimizer=adam, metrics=['RootMeanSquaredError', 'mae'])\n",
        "\n",
        "#print('FINISHED')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "CPU times: user 4 µs, sys: 0 ns, total: 4 µs\n",
            "Wall time: 10.7 µs\n",
            "time: 533 ms (started: 2021-01-15 17:43:02 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "8HxXLDTWo9K4",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ffc4a398-ab0b-42a7-ff6b-1a313fb1f959"
      },
      "source": [
        "model.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"sequential\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "batch_norm_0 (BatchNormaliza (None, 5, 23)             92        \n",
            "_________________________________________________________________\n",
            "lstm_1 (LSTM)                (None, 5, 32)             7168      \n",
            "_________________________________________________________________\n",
            "leaky_re_lu (LeakyReLU)      (None, 5, 32)             0         \n",
            "_________________________________________________________________\n",
            "dropout_1 (Dropout)          (None, 5, 32)             0         \n",
            "_________________________________________________________________\n",
            "batch_norm_1 (BatchNormaliza (None, 5, 32)             128       \n",
            "_________________________________________________________________\n",
            "lstm_2 (LSTM)                (None, 32)                8192      \n",
            "_________________________________________________________________\n",
            "dropout_2 (Dropout)          (None, 32)                0         \n",
            "_________________________________________________________________\n",
            "batch_norm_2 (BatchNormaliza (None, 32)                128       \n",
            "_________________________________________________________________\n",
            "dense (Dense)                (None, 1)                 33        \n",
            "=================================================================\n",
            "Total params: 15,741\n",
            "Trainable params: 15,567\n",
            "Non-trainable params: 174\n",
            "_________________________________________________________________\n",
            "time: 11 ms (started: 2021-01-15 17:43:02 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ThaH8zR7Au-A",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "be7cd715-f725-42f5-8c80-2cecd8bf8545"
      },
      "source": [
        "#predict value for test set\n",
        "y_pred = model.predict(X_test) #, batch_size=1\n",
        "y_true = y_test.reshape(y_test.shape[0], 1)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 616 ms (started: 2021-01-15 17:43:02 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "jFcgUCv6MDJ-",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "792fdd49-12c2-4799-8b66-49f6f1a7eb3b"
      },
      "source": [
        "y_pred[128:150]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[0.06945898],\n",
              "       [0.17351858],\n",
              "       [0.21231565],\n",
              "       [0.0926829 ],\n",
              "       [0.18895593],\n",
              "       [0.09874538],\n",
              "       [0.08637334],\n",
              "       [0.19717857],\n",
              "       [0.13927992],\n",
              "       [0.06945898],\n",
              "       [0.17351858],\n",
              "       [0.21231565],\n",
              "       [0.08866873],\n",
              "       [0.18821932],\n",
              "       [0.10610776],\n",
              "       [0.09401831],\n",
              "       [0.23517485],\n",
              "       [0.1659061 ],\n",
              "       [0.06226054],\n",
              "       [0.19604614],\n",
              "       [0.2640328 ],\n",
              "       [0.08324629]], dtype=float32)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 130
        },
        {
          "output_type": "stream",
          "text": [
            "time: 7.32 ms (started: 2021-01-15 17:43:03 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "a9f1RK2JFK1n",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "90e3ae0b-bbe9-41e7-ed8d-afeb1ad838f7"
      },
      "source": [
        "y_pred[0][0]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.3398101"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 131
        },
        {
          "output_type": "stream",
          "text": [
            "time: 6.72 ms (started: 2021-01-15 17:43:03 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "NUAtAF-xF651",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e4fa30a4-6225-41dc-bc47-43c75b6b6d8d"
      },
      "source": [
        "#evaluate the model result of the test set\n",
        "score = model.evaluate(X_val, y_val, batch_size=bs)[0]\n",
        "model.evaluate(X_test[:], y_test[:], batch_size=bs)[1]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "95/95 [==============================] - 1s 2ms/step - loss: 0.0038 - root_mean_squared_error: 0.0616 - mae: 0.0405\n",
            "28/28 [==============================] - 0s 2ms/step - loss: 0.0035 - root_mean_squared_error: 0.0591 - mae: 0.0417\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.059139616787433624"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 132
        },
        {
          "output_type": "stream",
          "text": [
            "time: 992 ms (started: 2021-01-15 17:43:03 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "G9wxgHJC1smt",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "21649a75-b822-4fb9-9ec7-b8cbcfd722ca"
      },
      "source": [
        "score"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.0037986410316079855"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 133
        },
        {
          "output_type": "stream",
          "text": [
            "time: 3.18 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "v9oj-RW1FHJA",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "2429ad3e-4e83-43bd-b5a6-6230d049085d"
      },
      "source": [
        "num_features"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "23"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 134
        },
        {
          "output_type": "stream",
          "text": [
            "time: 6.88 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "8AIrGfWxF6GT",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "9a2e4df6-3b00-4e9e-e150-4fda3b3dbaf5"
      },
      "source": [
        "# invert scaling for forecast\n",
        "inv_X_test = X_test.reshape((X_test.shape[0], look_back*num_features))\n",
        "inv_y_pred = np.concatenate((inv_X_test[:, -num_features:], y_pred), axis=1)\n",
        "inv_y_pred = scaler.inverse_transform(inv_y_pred)\n",
        "inv_y_pred = inv_y_pred[:,-1]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 4.96 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Ly7GmVaGq2t9"
      },
      "source": [
        "inv_y_pred"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-jSxiMxO_SJk",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "383b7367-6d61-4099-afba-b5e3af1066d7"
      },
      "source": [
        "inv_X_test.shape"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(436, 115)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 137
        },
        {
          "output_type": "stream",
          "text": [
            "time: 3.29 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "tvXCZWadJIWD",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "24d88e5f-62e8-433c-903f-ae305e5bba2e"
      },
      "source": [
        "# invert scaling for actual\n",
        "inv_y_true = np.concatenate((inv_X_test[:,- num_features:], y_true), axis=1)\n",
        "inv_y_true = scaler.inverse_transform(inv_y_true)\n",
        "inv_y_true = inv_y_true[:,-1]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 4.83 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "qg5_Hke-JQwo",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "476315ec-46c3-4942-b8b0-34bc0d09afef"
      },
      "source": [
        "# calculate RMSE\n",
        "from sklearn.metrics import mean_squared_error, mean_absolute_error\n",
        "\n",
        "mse = mean_squared_error(inv_y_true, inv_y_pred)\n",
        "rmse = np.sqrt(mean_squared_error(inv_y_true, inv_y_pred))\n",
        "mae = mean_absolute_error(inv_y_true, inv_y_pred)\n",
        "print('Test MSE: %.3f' % mse)\n",
        "print('Test RMSE: %.3f' % rmse)\n",
        "print('Test MAE: %.3f' % mae)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Test MSE: 1495.934\n",
            "Test RMSE: 38.677\n",
            "Test MAE: 27.249\n",
            "time: 10.3 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "e6Sfvun2KuuO",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "6ff85d38-fcf3-4679-fa7c-057ea8c292b1"
      },
      "source": [
        "#for plotting graph\n",
        "\n",
        "x = data[split_index_test:]\n",
        "\n",
        "datetime_difference = len(x) - len(y_true)\n",
        "x = x[datetime_difference:]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 3.8 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1AMA-hgy3PQM"
      },
      "source": [
        "Show in the graph only first 50 points."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xH2d-0CwAUef",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "d4f91089-a545-4be4-fc83-bbc7dfbb68b9"
      },
      "source": [
        "model.evaluate(X_train, y_train)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "148/148 [==============================] - 0s 2ms/step - loss: 0.0030 - root_mean_squared_error: 0.0548 - mae: 0.0396\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.0030048275366425514, 0.05481630563735962, 0.03962206095457077]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 141
        },
        {
          "output_type": "stream",
          "text": [
            "time: 433 ms (started: 2021-01-15 17:43:04 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_d_Csz7EBAs-",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "41146030-3f2a-45a1-fdf4-336222a2f923"
      },
      "source": [
        "plt.figure(figsize=(20,10))\n",
        "plt.plot(inv_y_true[:200], '.-', color='red', label='Real values', alpha=0.5)\n",
        "plt.plot(inv_y_pred[:200], '.-', color='blue', label='Predicted values', alpha=1)\n",
        "\n",
        "plt.ylabel(r'Driving time [s]', fontsize=14)\n",
        "plt.xlabel('time point', fontsize=14) #TODO: set x values as actual dates\n",
        "\n",
        "plt.xticks(fontsize=10, rotation=90)\n",
        "plt.yticks(fontsize=10)\n",
        "\n",
        "plt.legend(loc='upper left', borderaxespad=0, frameon=False, fontsize=14, markerscale=3)\n",
        "\n",
        "mse_result, rmse_result, mae_result = model.evaluate(X_test, y_test)\n",
        "\n",
        "plt.title(path_name+'\\n LSTMGA %.0f hidden layers result \\n batch_size = 2**%.0f in %.0f time window and %.0f neurons in each lstm layer \\n MSE = %.2f \\n RMASE = %.1f  \\n MAE = %.1f' \n",
        "          % (best_model['n_layers'], best_model['bs_double'], \n",
        "             look_back, best_model['n_neurons'], \n",
        "             mse, rmse, mae), fontsize = 14)\n",
        "\n",
        "print('FINISHED')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "14/14 [==============================] - 0s 3ms/step - loss: 0.0035 - root_mean_squared_error: 0.0591 - mae: 0.0417\n",
            "FINISHED\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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8cYzlW+55Zb84Q9/AODFF19k5513pl27diy22GJsvfXW9O/fv2a7krj77rtnKCsfLjdu3DgOPfRQll56aRZddFG22247BgwYMMP6rl27svTSS7Pggguy2mqrcfHFF9d9bGZmZmZmZmbW/BxYKpk0KWUqrbQStGkz47o2bVL5XXfBV1/N9q689957PPLIIyywwALTy6655hpOOOEE/v73vzN48GAuuOACzj33XC6//PLpdVq1asXFF1/MG2+8wa233soLL7zA73//+7r326VLF15++WXefPPNGfrSv39/unTpAsD48ePp2rUrTz/9NC+88AIbbLABu+22G59++mmTjzci6Ny5MyNGjKB379688sorbLvttnTq1ImPP/4YgJNOOonXX3+d3r17M2TIEHr27MkKK6zQ5H2amZmZmZmZ2ayb94fCPfIIjBzZcL2hQ+GNN6Bdu+p1xoyBc85JmUy1LLss7LJLY3rJI488Qtu2bfnmm2/4KgevLrzwwunrTz/9dM477zz23ntvAFZddVWOP/54Lr/8cn73u98BcNRRR02v3759e8477zx+8YtfcOONN9KqVcMxxA4dOrDhhhvSq1cvTj/9dABuvfVW1lprLTbbbDMAOnXqNMM2l156Kffccw8PP/zw9OBTY/Xt25dXX32V0aNHs9BCC00/3gcffJCbb76ZY489lmHDhrHRRhtN78cqq6zSpH2ZmZmZmZmZWfNxxlJJvZlIsyljadttt+XVV1+dnmW02267TR9+Nnr0aIYPH85hhx1G27Ztpy/HH38877777vQ2nnjiCXbaaSdWXHFFFl10Ufbaay+mTJnCyHoCa1mXLl249dZbp7/v1asXBxxwwPT3n3zyCYcddhhrrbUWiy++OIsuuiiffPIJH3zwQZOP/aWXXmLixIkstdRSMxzfwIEDpx/f4Ycfzh133MH666/PMcccw5NPPtnk/ZmZmZmZmZlZ85j3M5bqzRx66SUYNSrNqVTNsGFpEu8K8xDNqoUXXpg11lgDgEsuuYTtt9+e008/nVNPPXX6PEpXXnklW265ZZWuDaNz584ccsgh/P3vf2fJJZfk5ZdfZv/992fKlCl192P//ffn2GOPpX///rRp04Y333xzhkykAw88kFGjRnHRRRfRvn172rRpww477FBzH5KIiBnKvv766+k/T5s2jWWWWYann356pm0XW2wxAHbddVeGDRvGww8/TJ8+fejcuTP77LMP119/fd3HZmZmZmZmZmbNa94PLNWrQ4f09LfJk2eeYwlSeevW8JOffCfdOeWUU9h111059NBDWX755Vl++eV59913+c1vflOx/oABA5gyZQoXXXQR8803HwC9e/du9H6XW245OnXqRK9evWjTpg1bbLEFq6222vT1zzzzDJdccgmdO3cGYNSoUdPnQapmqaWWmqFO+TYbbbQRo0aNolWrVjPsq1y7du3o2rUrXbt2Zdddd2X//ffnyiuvpE2lz8vMzMzMzMzMZjsPhStZaKGUjTR8eAoiFU2eDB9+mNYvuOB30p2OHTvSoUMHzjjjDABOO+00zjvvPC666CKGDBnCwIEDuemmmzj77LMBWHPNNZk2bRoXX3wx77//PrfddluTn5rWpUsX7rjjDm6//faZ5k1aa621uOWWWxg0aBAvvvgi++23H61bt67ZXqdOnfjXv/7FgAEDeOWVV+jWrRsLFs7jjjvuyFZbbcUvfvELHn74Yd5//3369+/PKaecMj2L6eSTT+b+++/n7bffZvDgwdx7772sttpqDiqZmZmZmZmZzUEOLBXtsAN06waffZaGvQ0dml4/+wwOPDCt/w79+c9/5rrrrmPYsGH06NGDnj17cvPNN7P++uuzzTbbcPXVV7PqqqsCsN566/HPf/6TCy+8kA4dOnDttddy/vnnN2m/e+21FxMnTmT06NHsu+++M6zr2bMnEyZMYOONN2a//faje/futG9gMvMLLriA1VZbjY4dO7L33nvTo0cPll566enrJfHQQw/RqVMnDjnkENZee23+7//+jyFDhrD88ssD0KZNG0488UTWX399ttpqK8aPH8+DDz7YpOMzMzMzMzMzs+ah8rlv5mabbLJJDBgwYNYbmjQJBg2CCROgbds0/O07ylQyMzMzMzMzM/s+kfRSRGxSaZ3nWKpkoYVmywTdZmZmZmZmZmbzEg+FMzMzMzMzMzOzJnFgyczMzMzMzMzMmsSBJTMzMzMzMzMzaxIHlszMzMzMzMzMrEkcWDIzm1cNHw5PP51ezczMzMzMZgM/Fc7MbF40fDgccQR8+SWsthqccgqstNKc7pWZmZmZmc1jnLFkZjYvGjoUxo+H1q1h6tT03szMzMzMrJk5sGRmNi9q3x5atYL/z96dx8lVFugef96u7vSStRNCAkmTxrAIshiGQSN3SFjEQUDkDgJXEBCRGWe8LhhAUBM2QUYuOM7ciRcNigjKkAENjCAIRBCDLBNQIigBG5qwJKY7Wy/pqur3/vHW6T5dXcupTtWpU6d/38+nP7V29ZtOddWp5zzvezZvlurr3WUAAAAAKDOCpXFm5cqVMsYMXf7BD36gSZMmVWUsJ510ks4777yK/oxq/vuAqmprk/7u76QjjmAaHAAAAICKIVjKobtb+u53pauvdqfd3ZX9eeedd56MMTLGqKGhQe9617u0ZMkS9fT0VPYHSzrjjDP06quvBr5/e3u7brjhhgqOCEDZtLZK8+YRKgEAAACoGBbv9rFWWrpUuuEGKZGQenullhbpc5+TliyRrrpK8pV9yuq4447TbbfdpmQyqccff1wXXHCBenp6tHz58lH3TaVSSiQSI5pHY9Xc3Kzm5uZdfhwAETQ4prfumQAAIABJREFU6L4AAAAAoEJoLPksXSrdeKPU3+8OpGStO+3vd9cvXVq5n93Y2KjZs2erra1NH//4x3XWWWfppz/9qSTpiiuu0EEHHaQf/OAHmj9/vhobG9XT06OtW7fqwgsv1O67767Jkydr0aJFeuaZZ0Y87g9/+EPNmzdPLS0tOumkk/TOO++MuD3XVLGf//znet/73qfm5mbNmDFDJ598svr7+7V48WK99tpruvjii4caVp7f/OY3WrRokVpaWjRnzhx95jOf0bZt24Zu7+3t1XnnnadJkyZp1qxZuvbaawv+PrZt26bm5mbde++9I65/8MEH1dDQoI0bN0qSvvzlL2v//fdXc3Oz2tvbdckll6i/vz/v43q/y2K/g3vvvVd/9Vd/paamJu299976yle+ooGBgaHb7777bh1yyCFqbm7W9OnTtWjRolG/W6DqCJYAAAAAVBjBUkZ3t2sq9fbmvr23192+ZUs442lublYymRy6/Oc//1l33HGH7rrrLj3//PNqbGzUiSeeqA0bNui+++7T2rVrddRRR+mYY47RW2+9JUn67W9/q/POO08XXnihnnvuOZ188slaWiQde+CBB/SRj3xEH/zgB/Xss8/q0Ucf1aJFizQ4OKi7775bc+fO1dKlS/XWW28N/Zzf//73Ov744/WRj3xEzz//vO6++24999xzOv/884ced8mSJXrooYf0n//5n3r44Ye1du1aPfbYY3nHMWXKFJ188sm6/fbbR1x/++2364Mf/KB23313SdLEiRN1yy236MUXX9S///u/6yc/+Ym+/vWvl/bLzvKLX/xCZ511lj772c9q3bp1uuWWW7Ry5UpdfvnlkqS3335bZ555ps4991y9+OKLeuyxx/SJT3xil34mUBEESwAAAAAqLPZT4b7wBem554rf7623JF8hJaeBAel975P22KPw/d77Xulb3wo+xmxPPfWU7rjjDh177LG+nz2g2267TbNmzZIkPfLII3ruuee0adOmoalsV199te69917ddtttuuSSS/Qv//IvOvbYY/WVr3xFkrTffvvp6aef1ooVK/L+7KuvvlqnnXaarrnmmqHrDjnkEElSS0uLEomEJk+erNmzZw/d/s1vflNnnHGGvvSlLw1dt3z5ci1YsEAbN25US0uLVqxYoVtuuUUf+tCHJEnf//73NXfu3IK/h7PPPltnnnmmtm/frsmTJ6uvr0/33HOPvvOd7wzd52tf+9rQ+fb2dl1++eW64YYbdPXVVxd87EK+/vWv6+KLL9YnP/lJSdL8+fN1/fXX6+yzz9Y3v/lNvfnmm0omkzrttNM0b948SRrVggIigWAJAAAAQIXFPlgKamCg+OevwcHi4dNYPfDAA5o0aZJSqZSSyaROOeUU/eu//uvQ7XPnzh0KlSTp2WefVW9vr2bOnDnicfr7+/XKK69Ikl588UWdfPLJI25fuHBhwWBp7dq1JR+p7dlnn9X69et15513Dl1nrZUkvfLKK2ppadHAwIAWLlw4dPukSZN08MEHF3zcE044QS0tLbrnnnt0zjnnaNWqVbLW6qMf/ejQfVauXKlvfetbWr9+vXbs2KF0Oq10Ol3S+HP9e5566ildf/31Q9cNDg6qr69Pb7/9tg499FAdd9xxOuigg3T88cfruOOO02mnnTbq/wKoOi9YsrZyC8QBAAAAGNdiHywFbQ5997vSF7/o1lTKZ+JE6fLLpU9/ujxj8zvqqKN08803q6GhQXvuuacaGhqyfvbEEZcHBwc1a9YsPf7446Mea8qUKeUfYAGDg4O64IIL9MUvfnHUbXPmzNGf/vSnMT1uQ0ODTj/9dN1+++0655xzdPvtt+vUU09VS0uLJOnJJ5/UmWeeqWXLlummm27StGnTtGrVKi1ZsiTvY9bV1Q2FXh7/lEPv37Ns2TJ97GMfG/X9M2fOVCKR0IMPPqgnn3xSDz74oFasWKHLLrtMv/rVr3TooYeO6d8KVISXlhMsAQAAAKiQ2AdLQZ12mjv6WyHptJQjayiLlpYW7bPPPoHvf9hhh+mdd95RXV2d3vWud+W8zwEHHKAnn3xyxHXZl7MtWLBADz/8sD6dJz2bMGHCqEbQYYcdpnXr1uUd//z589XQ0KAnn3xyaKw9PT164YUXNH/+/ILjOfvss3XUUUfpD3/4gx544AHdd999Q7c98cQTmjNnzojpcK+99lrBx5s5c6beeecdWWuHFh9/Lmuu5GGHHaaXXnqp4P+HMUYLFy7UwoULtXTpUr3nPe/RnXfeSbCEaPGCpXRaqmNJPQAAAADlxyeNjNZWackSKVOGGaWlxd0+bVq448rnuOOO05FHHqlTTjlF999/v/785z9rzZo1WrZs2VCL6XOf+5x++ctf6rrrrtPLL7+s7373u7rnnnsKPu5XvvIV3XXXXfrqV7+qP/zhD1q3bp1uuukm9WZWNW9vb9fjjz+uDRs26C9/+Ysk6dJLL9VTTz2lf/iHf9DatWu1fv163Xffffr7v/97SW7a26c+9Sldeumleuihh7Ru3Tqdf/75gaasfeADH9C8efP08Y9/XLvtttuIdaf2228/bdiwQbfffrteffVVLV++XD/+8Y8LPt7ixYvV1dWla6+9Vq+88opWrFihlStXjrjP0qVLdccdd2jp0qV64YUX9NJLL2nlypW65JJLJLlw7pprrtHTTz+t119/XatWrVJnZ6cOPPDAov8eIFResMQ6SwAAAAAqhGDJ56qrpIsukpqa3LQ3Y9xpU5O7/qqrqj3CYcYY/fznP9cxxxyjT3/609p///11+umn649//KP23HNPSdL73/9+rVixQsuXL9chhxyiu+++W1dccUXBx/3whz+se+65R/fff78WLFigRYsW6dFHH1Vdpu1w1VVXqbOzU/Pnzx9aU+iQQw7RY489po6ODi1atEiHHnqoLrvsshFrQt1www06+uijdeqpp+roo4/WQQcdpKOOOirQv/Wss87S888/rzPPPFOJRGLo+pNPPlkXX3yxvvCFL+iQQw7RQw89pKuK/CcdcMABWr58uW6++eah7/GO9ub50Ic+pP/6r//So48+qiOOOEJHHHGEvvGNb2ivvfaSJE2dOlVPPPGETjrpJO2777760pe+pK997Ws6++yz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\n",
            "text/plain": [
              "<Figure size 1440x720 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        },
        {
          "output_type": "stream",
          "text": [
            "time: 504 ms (started: 2021-01-15 17:43:05 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ToZ1K7xALIZG",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "4274d630-56e0-4105-8ae7-3565b10fafd7"
      },
      "source": [
        "plt.figure(figsize=(20,10))\n",
        "plt.plot( inv_y_true, '.-', color='red', label='Real values', alpha=0.5)\n",
        "plt.plot( inv_y_pred, '.-', color='blue', label='Predicted values', alpha=1)\n",
        "\n",
        "plt.ylabel(r'Driving time [s]', fontsize=14)\n",
        "plt.xlabel('datetime [-]', fontsize=14) #TODO: set x values as actual dates\n",
        "\n",
        "plt.xticks(fontsize=10, rotation=90)\n",
        "plt.yticks(fontsize=10)\n",
        "\n",
        "plt.legend(loc='upper left', borderaxespad=0, frameon=False, fontsize=14, markerscale=3)\n",
        "\n",
        "mse_result, rmse_result, mae_result = model.evaluate(X_test, y_test)\n",
        "\n",
        "plt.title(path_name+'\\n LSTM %.0f hidden layers result \\n batch_size = 2**%.0f in %.0f time window and %.0f neurons in each lstm layer \\n MSE = %.2f \\n RMASE = %.1f  \\n MAE = %.1f' \n",
        "          % (best_model['n_layers'], best_model['bs_double'], \n",
        "             look_back, best_model['n_neurons'],  mse, rmse, mae), fontsize = 14)\n",
        "\n",
        "print('FINISHED')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "14/14 [==============================] - 0s 3ms/step - loss: 0.0035 - root_mean_squared_error: 0.0591 - mae: 0.0417\n",
            "FINISHED\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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2rTh66+/5sscvLrwwgunLz/jjDM4//zz2XvvvQFYddVVOf7447n88sv5wx/+AMDRRx89vXy7du04//zz+dWvfsWNN95IixYNxxDbt2/P+uuvT58+fTjjjDMA6Nu3L2uuuSabbLIJAB07dpxhnUsvvZQ777yTBx98cHrwqbGeeOIJXn75ZUaPHs3CCy88fX/vu+8+evfuzbHHHsvw4cPZYIMNprdjlVVWadK2zMzMzMzMzKz5OGOppN5MpNmUsbTNNtvw8ssvT88y2nXXXad3Pxs9ejQjRozgsMMOo02bNtOn448/nnfeeWd6HY8//jg77rgjK664Iostthh77rknU6dO5eN6AmtZ586d6du37/T3ffr04YADDpj+/pNPPuGwww5jzTXXZIkllmCxxRbjk08+4f3332/yvr/44otMmjSJpZdeeob9e+2116bv3xFHHMGtt97KuuuuS48ePXjyySebvD0zMzMzMzMzax7zfsZSvZlDL74Io0alMZWqGT48DeJdYRyiWbXIIouw+uqrA3DJJZew3XbbccYZZ3DqqadOH0fpyiuvZIsttqjStOF06tSJQw45hNNPP52lllqKl156if3335+pU6fW3Y7999+fY489lgEDBtC6dWveeOONGTKRDjzwQEaNGsVFF11Eu3btaN26Ndtvv33NbUgiImaY99VXX03/+ZtvvuFHP/oRTz311EzrLr744gDssssuDB8+nAcffJDHHnuMTp06sc8++3D99dfXvW9mZmZmZmZm1rzm/cBSvdq3T09/mzJl5jGWIM1v1Qp+9rPvpDmnnHIKu+yyC4ceeijLL788yy+/PO+88w6/+93vKpYfOHAgU6dO5aKLLmKBBRYAoF+/fo3e7nLLLUfHjh3p06cPrVu3ZvPNN2e11Vabvvzpp5/mkksuoVOnTgCMGjVq+jhI1Sy99NIzlClfZ4MNNmDUqFG0aNFihm2Va9u2LV26dKFLly7ssssu7L///lx55ZW0rnS+zMzMzMzMzGy2c1e4koUXTtlII0akIFLRlCnwwQdp+UILfSfN6dChA+3bt+fMM88E4LTTTuP888/noosuYujQobz22mvcdNNNnHPOOQCsscYafPPNN1x88cW899573HLLLU1+alrnzp259dZb+de//jXTuElrrrkmN998M4MHD+aFF15gv/32o1WrVjXr69ixI//85z8ZOHAggwYNomvXrixUOI477LADW265Jb/61a948MEHee+99xgwYACnnHLK9Cymk08+mXvuuYe33nqLIUOGcNddd7Haaqs5qGRmZmZmZmY2BzmwVLT99tC1K3z2Wer2NmxYev3sMzjwwLT8O/SXv/yF6667juHDh9O9e3d69epF7969WXfdddl66625+uqrWXXVVQH4+c9/zj/+8Q8uvPBC2rdvz7XXXkvPnj2btN0999yTSZMmMXr0aPbdd98ZlvXq1YsJEyaw4YYbst9++9GtWzfaNTCY+QUXXMBqq61Ghw4d2HvvvenevTvLLLPM9OWSeOCBB+jYsSOHHHIIa621Fr/5zW8YOnQoyy+/PACtW7fmxBNPZN1112XLLbdk/Pjx3HfffU3aPzMzMzMzMzNrHiof+2ZuttFGG8XAgQNnvaLJk2HwYJgwAdq0Sd3fvqNMJTMzMzMzMzOz7xNJL0bERpWWeYylShZeeLYM0G1mZmZmZmZmNi9xVzgzMzMzMzMzM2sSB5bMzMzMzMzMzKxJHFgyMzMzMzMzM7MmcWDJzMzMzMzMzMyaxIEls++LESPgqafSq5mZmZmZmdlcwE+FM/s+GDECDj8cFl0UFl8cTjkFVlppTrfKzMzMzMzMrCZnLJl9H7z3HowcCYssAtOmwbBhc7pFZmZmZmZmZg1yYMns+2CVVaBFC/joI1hwQWjXbk63yMzMzMzMzKxBDizNZ+644w4kTX9/ww030KZNmznSlt12242uXbvO1m3Myf1rlBVXhG23hV12cTc4MzMzMzMzm2s4sFTB55/DNdfAGWek188/n73b69q1K5KQRMuWLVlttdXo0aMHEydOnL0bBvbdd1/efffdusu3a9eOnj17zsYWzaciYIklYJ11HFQyMzMzMzOzuYYH7y6IgJNPhp49YYEFYNKkNOTNUUdBjx5w+ulQSPZpVjvssAO9e/fmq6++4qmnnqJ79+5MnDiRK664Yqay06ZNY4EFFpgh86ipFl54YRZeeOFZrsdmUcSMr2ZmZmZmZmZzAWcsFZx8Mlx4IXz5JUycmO7xJ05M7y/8/+zdeZwcdZ3/8fd3jkxOEo5cJEMmRAhoDIcIjCgJ94oguIuIgpyCsuuyrpyCEhQQ+emKuvsTfyh4gqIICqwgGIkEGeRGgYAEGBgCBBACCZnJdHd9f39UVU9NT/dMH1XdVV2v5+ORR/d0dyrfSVdVV7378/nWN93no9LR0aFZs2aps7NTn/jEJ3T00UfrN7/5jSTpggsu0KJFi/SjH/1ICxYsUEdHh95++229+eabOuWUUzRjxgxNmTJFS5Ys0f333z9suT/5yU80b948TZw4UYcccojWrl077PlirWK/+93vtMcee2jChAnacsstdeihh2pgYEBLly7Vc889pzPPPDNfYeW7++67tWTJEk2cOFFz5szRqaeeqrfeeiv//MaNG3X88cdr8uTJmjlzpr761a+O+v/x1ltvacKECbrpppuGPX7bbbepvb1dr7zyiiTpnHPO0cKFCzVhwgR1dXXprLPO0sDAQMnl+v+XY/0f3HTTTXrPe96j8ePHa/78+TrvvPM0ODiYf/7666/X4sWLNWHCBG2xxRZasmTJiP/bihAsAQAAAAASiGDJ88YbbqXSxo3Fn9+4Akec9gAAIABJREFU0X1+3br6jGfChAnKZDL5n5999lldc801+tWvfqVHHnlEHR0d+tCHPqQ1a9bo5ptv1kMPPaS9995b++67r1566SVJ0l/+8hcdf/zxOuWUU/Twww/r0EMP1fljpGO33nqrPvzhD+uAAw7QAw88oDvuuENLliyR4zi6/vrrNXfuXJ1//vl66aWX8v/O3/72Nx144IH68Ic/rEceeUTXX3+9Hn74YZ144on55Z5xxhm6/fbb9etf/1rLly/XQw89pDvvvLPkODbbbDMdeuihuvrqq4c9fvXVV+uAAw7QjBkzJEmTJk3SVVddpVWrVum73/2ufvGLX+jiiy+u7D+7wO9//3sdffTR+uxnP6vHHntMV111la677jqde+65kqSXX35ZRx11lI477jitWrVKd955pz75yU/W9G8SLAEAAAAAkqjpW+E+9znp4YfHft1LL0mBgpSiBgelPfaQZs8e/XU77yx961vlj7HQvffeq2uuuUb77bdf4N8e1E9/+lPNnDlTkvTHP/5RDz/8sF599dV8K9uFF16om266ST/96U911lln6dvf/rb2228/nXfeeZKk7bffXvfdd5+uvPLKkv/2hRdeqCOOOEIXXXRR/rHFixdLkiZOnKjW1lZNmTJFs2bNyj//9a9/XR/72Md0+umn5x+7/PLLtcsuu+iVV17RxIkTdeWVV+qqq67SQQcdJEn64Q9/qLlz5476/3DMMcfoqKOO0vr16zVlyhT19/frhhtu0Pe+9738a770pS/l73d1dencc8/VN77xDV144YWjLns0F198sc4880ydcMIJkqQFCxbo0ksv1THHHKOvf/3revHFF5XJZHTEEUdo3rx5kjSiCqpiBEsAAAAAgARq+mCpXIODkuOM/hrHGTt8qtatt96qyZMnK5vNKpPJ6LDDDtN///d/55+fO3duPlSSpAceeEAbN27U9OnThy1nYGBATz/9tCRp1apVOvTQQ4c9393dPWqw9NBDD1V8pbYHHnhAq1ev1rXXXpt/zHoBydNPP62JEydqcHBQ3d3d+ecnT56sd7/73aMu94Mf/KAmTpyoG264Qccee6xuvPFGWWt1+OGH519z3XXX6Vvf+pZWr16tDRs2KJfLKZfLVTT+Yr/Pvffeq0svvTT/mOM46u/v18svv6yddtpJ+++/vxYtWqQDDzxQ+++/v4444ogR70VFCJYAAAAAAAnU9MFSuZVD3/++9J//6c6pVMqkSdK550onnxzO2IL23ntvXXHFFWpvb9fWW2+t9vb2gn970rCfHcfRzJkztXLlyhHL2myzzcIf4Cgcx9GnPvUp/ed//ueI5+bMmaO///3vVS23vb1dRx55pK6++mode+yxuvrqq/WRj3xEEydOlCTdc889Ouqoo7Rs2TJddtllmjZtmm688UadccYZJZfZ0tKSD718wZZD//dZtmyZPvrRj474+9OnT1dra6tuu+023XPPPbrtttt05ZVX6gtf+IL+9Kc/aaeddqrqdyVYAgAAAAAkUdMHS+U64gj36m+jyeWkIllDKCZOnKh3vOMdZb9+11131dq1a9XS0qJtt9226Gt23HFH3XPPPcMeK/y50C677KLly5fr5BLp2bhx40ZUBO2666567LHHSo5/wYIFam9v1z333JMf69tvv61HH31UCxYsGHU8xxxzjPbee289/vjjuvXWW3XzzTfnn/vzn/+sOXPmDGuHe+6550Zd3vTp07V27VpZa/OTjz9c0Cu566676oknnhj1/TDGqLu7W93d3Tr//PP1rne9S9deey3BEgAAAAAgVZi827P55tIZZ0heMcwIEye6z0+bVt9xlbL//vtrr7320mGHHaZbbrlFzz77rHp6erRs2bJ8FdNpp52mP/zhD7rkkkv01FNP6fvf/75uuOGGUZd73nnn6Ve/+pW++MUv6vHHH9djjz2myy67TBu9Wc27urq0cuVKrVmzRq+99pok6eyzz9a9996rz3zmM3rooYe0evVq3Xzzzfr0pz8tyW17O+mkk3T22Wfr9ttv12OPPaYTTzyxrJa1973vfZo3b54+8YlPaKuttho279T222+vNWvW6Oqrr9Yzzzyjyy+/XD//+c9HXd7SpUv1+uuv66tf/aqefvppXXnllbruuuuGveb888/XNddco/PPP1+PPvqonnjiCV133XU666yzJLnh3EUXXaT77rtPzz//vG688Ub19fXpne9855i/T0kESwAAAACABCJYCvjKV6TPf14aP95tezPGvR0/3n38K19p9AiHGGP0u9/9Tvvuu69OPvlkLVy4UEceeaSefPJJbb311pKkPffcU1deeaUuv/xyLV68WNdff70uuOCCUZd78MEH64YbbtAtt9yiXXbZRUuWLNEdd9yhlhZ3VfnKV76ivr4+LViwID+n0OLFi3XnnXeqt7dXS5Ys0U477aQvfOELw+aE+sY3vqF99tlHH/nIR7TPPvto0aJF2nvvvcv6XY8++mg98sgjOuqoo9Ta2pp//NBDD9WZZ56pz33uc1q8eLFuv/12fWWMN2nHHXfU5ZdfriuuuCL/d/yrvfkOOugg/e///q/uuOMO7b777tp99931ta99Tdtss40kaerUqfrzn/+sQw45RNttt51OP/10felLX9IxxxxT1u8zKoIlAAAAAECCmML5ZpJst912s/fff3/Ny3njDem666SXX5ZmzXLb3+JSqYQmtX699F//Jb3nPVLBhOsAAAAAADSSMeYBa+1uxZ5jjqUiNt88mgm6gZJohQMAAAAAJBCtcEAcECwBAAAAABKIYAmIA4IlAAAAAEACESwBcUCwBAAAAABIIIIlIA4IlgAAAAAACUSwBMQBwRIAAAAAIIEIloA4IFgCAAAAACQQwRIQBwRLAAAAAIAEIlgC4oBgCQAAAACQQARLQJwQLAEAAAAAEoRgCYgDAiUAAAAAQAIRLAFxQCscAAAAACCBCJaAOCBYAgAAAAAkEMESEAcESwAAAACABCJYAuKAYAkAAAAAkEAES0AcECwBAAAAABKIYAmIA4IlAAAAAEACESwBcUCwBAAAAABIIIIlIA4IlgAAAAAACUSwBMQBwRIAAAAAIIHqGiwZY3qNMX8zxjxsjLnfe2wLY8ztxpin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\n",
            "text/plain": [
              "<Figure size 1440x720 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        },
        {
          "output_type": "stream",
          "text": [
            "time: 529 ms (started: 2021-01-15 17:43:05 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TmJnUXtLMPVD"
      },
      "source": [
        "# Combine results"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "BshbaVGdZqHj",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "080a0891-31f1-4ebb-9e24-754344046c0a"
      },
      "source": [
        "comb_result = st_comb_result.copy()\n",
        "comb_result = comb_result.drop(['Unnamed: 0'], axis=1) #, 'Unnamed: 0.1', 'Unnamed: 0.1.1'"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 5.04 ms (started: 2021-01-15 17:43:07 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SXSxFSMBXT4Q"
      },
      "source": [
        "st_comb_result"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eF0GBFcEIvzZ",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "d38cebbb-2b68-4f82-e0c9-3fb9a6354f07"
      },
      "source": [
        "comb_result = comb_result.rename(columns= {'Unnamed: 0.1':'index'})"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 3.25 ms (started: 2021-01-15 17:43:19 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZEORRsIS_qYM"
      },
      "source": [
        "#comb_result = comb_result.loc[comb_result.index>=int(size_trip*np.ceil(best_model['n_timewindow']))].reset_index(drop = True)\n",
        "#comb_result = comb_result.loc[comb_result.index>=62].reset_index(drop = True)\n",
        "#comb_result = comb_result[:40]\n",
        "comb_result"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "7D7G2DStW17j",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "90b50797-d2f0-4f14-a09e-e1e32de1bf70"
      },
      "source": [
        "len(comb_result)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "432"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 148
        },
        {
          "output_type": "stream",
          "text": [
            "time: 7.3 ms (started: 2021-01-15 17:43:36 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "A1fzZDD8E0eN",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e0394252-97c5-4152-d1a5-906f3e8186fb"
      },
      "source": [
        "len(inv_y_pred[-len(comb_result):])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "432"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 149
        },
        {
          "output_type": "stream",
          "text": [
            "time: 4.32 ms (started: 2021-01-15 17:43:38 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vntydP7qMItu"
      },
      "source": [
        "(inv_y_pred[-len(comb_result):])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fy7dQKzhNIp6"
      },
      "source": [
        "inv_y_pred[int(np.floor(size_trip*best_model['n_timewindow'])):]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "h1mAVAfBMOPA"
      },
      "source": [
        "comb_result['LSTMGA_'+str(best_model['n_layers'])+'H_'+bs_name] = inv_y_pred[-len(comb_result):]\n",
        "#comb_result= comb_result.drop(['LSTMGA_test|_'], axis=1)\n",
        "#comb_result['LSTMGA_'+str(best_model['n_layers'])+'H_'+bs_name] = inv_y_pred\n",
        "#comb_result = comb_result[20:].reset_index(drop = True)\n",
        "comb_result"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "hlL6EP2qNZr1",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "571e5a13-0870-42d3-db24-6130d2c4c31a"
      },
      "source": [
        "if route == 202:\n",
        "  route_unique = np.array(['Lufthansa-Basis (Haupteingang)|Obenhauptstraße',\n",
        "        'Obenhauptstraße|Alsterkrugchaussee (Mitte)',\n",
        "        'Alsterkrugchaussee (Mitte)|Moltrechtweg',\n",
        "        'Moltrechtweg|Brabandstraße', 'Brabandstraße|Hindenburgstraße',\n",
        "        'Hindenburgstraße|U Alsterdorf', 'U Alsterdorf|Sydneystraße',\n",
        "        'Sydneystraße|Manilabrücke', 'Manilabrücke|Kapstadtring',\n",
        "        'Kapstadtring|S Rübenkamp', 'S Rübenkamp|AK Barmbek', 'AK Barmbek|Hartzloh',\n",
        "        'Hartzloh|Habichtsplatz', 'Habichtsplatz|U Habichtstraße',\n",
        "        'U Habichtstraße|Habichtstraße (Mitte)',\n",
        "        'Habichtstraße (Mitte)|U Alter Teichweg',\n",
        "        'U Alter Teichweg|U Straßburger Straße',\n",
        "        'U Straßburger Straße|Wandsbeker Allee',\n",
        "        'Wandsbeker Allee|U Wandsbek Markt'], dtype= object)\n",
        "else:\n",
        "  route_unique = (comb_result.Path.unique())\n",
        "route_unique"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array(['S Rübenkamp|AK Barmbek', 'AK Barmbek|Hartzloh',\n",
              "       'Hartzloh|Habichtsplatz', 'Habichtsplatz|U Habichtstraße',\n",
              "       'U Habichtstraße|Habichtstraße (Mitte)',\n",
              "       'Habichtstraße (Mitte)|U Alter Teichweg',\n",
              "       'U Alter Teichweg|U Straßburger Straße',\n",
              "       'U Straßburger Straße|Wandsbeker Allee',\n",
              "       'Wandsbeker Allee|U Wandsbek Markt'], dtype=object)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 153
        },
        {
          "output_type": "stream",
          "text": [
            "time: 11.9 ms (started: 2021-01-15 17:44:21 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "TVJ84ivTUeqY",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ebdb5636-ac14-49b9-8b1c-d7cc4ec73cb6"
      },
      "source": [
        "comb_result['Path']"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0                      S Rübenkamp|AK Barmbek\n",
              "1                         AK Barmbek|Hartzloh\n",
              "2                      Hartzloh|Habichtsplatz\n",
              "3               Habichtsplatz|U Habichtstraße\n",
              "4       U Habichtstraße|Habichtstraße (Mitte)\n",
              "                        ...                  \n",
              "427     U Habichtstraße|Habichtstraße (Mitte)\n",
              "428    Habichtstraße (Mitte)|U Alter Teichweg\n",
              "429     U Alter Teichweg|U Straßburger Straße\n",
              "430     U Straßburger Straße|Wandsbeker Allee\n",
              "431         Wandsbeker Allee|U Wandsbek Markt\n",
              "Name: Path, Length: 432, dtype: object"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 154
        },
        {
          "output_type": "stream",
          "text": [
            "time: 11.2 ms (started: 2021-01-15 17:44:24 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5T_diThVNgxZ"
      },
      "source": [
        "#add new column for trip accumulate\n",
        "comb_result['LSTMGA_'+str(best_model['n_layers'])+'H_'+bs_name+'_trip_cum'] = 0\n",
        "a = 0\n",
        "for i in range(len(comb_result)):\n",
        "  if comb_result['Path'][i] == route_unique[0]: #the first path\n",
        "    a = comb_result['LSTMGA_'+str(best_model['n_layers'])+'H_'+bs_name][i]\n",
        "    comb_result['LSTMGA_'+str(best_model['n_layers'])+'H_'+bs_name+'_trip_cum'][i] = a\n",
        "  else:\n",
        "    a += comb_result['LSTMGA_'+str(best_model['n_layers'])+'H_'+bs_name][i] \n",
        "    comb_result['LSTMGA_'+str(best_model['n_layers'])+'H_'+bs_name+'_trip_cum'][i] = a\n",
        "comb_result[:]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "GIUGy47IJlCH",
        "outputId": "b2760f71-7db6-4328-c423-69844c297823"
      },
      "source": [
        "#comb_result = comb_result[['Date time','Path','Actual','Actual_trip_cum','MLP','MLP_trip_cum','MLP_Kalman','MLP_Kalman_trip_cum','LSTM_2H_128','LSTM_2H_128_trip_cum','LSTMGA_2H_16','LSTMGA_2H_16_trip_cum','MLPGA_4H_16','MLPGA_4H_16_trip_cum']]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 4.11 ms (started: 2021-01-15 17:47:12 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GKyin5mMmQQW"
      },
      "source": [
        "# Export data"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "hFZbMxb3lwvu",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "c08a5da3-7092-4845-9323-6c4e1617a1f8"
      },
      "source": [
        "#path_file = 'combine_result'+path_end+'.csv'\n",
        "#comb_result.to_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/Tue_1_5_combine_result_\"+path_end+\".csv\")\n",
        "#comb_result_rmse.to_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/Tue_1_5_combine_result_rmse_\"+path_end+\".csv\")\n",
        "#!cp path_file \"/content/drive/My Drive/Colab Notebooks/Thesis\"\n",
        "\n",
        "comb_result.to_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/combine_result_\"+path_end+\"_m\"+str(month)+\".csv\")\n",
        "#comb_result_rmse.to_csv(\"/content/drive/My Drive/Colab Notebooks/Thesis/combine_result_rmse_\"+path_end+\"_m\"+str(month)+\".csv\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "time: 38.4 ms (started: 2021-01-15 17:47:22 +00:00)\n"
          ],
          "name": "stdout"
        }
      ]
    }
  ]
}